Merge pull request #7561 from edx/mobile/PLAT-520

PLAT-520 Fix Asset store import of null values.
This commit is contained in:
Nimisha Asthagiri
2015-04-03 12:46:21 -04:00
4 changed files with 23 additions and 10 deletions

View File

@@ -195,6 +195,9 @@ class AssetMetadata(object):
elif tag == 'locked':
# Boolean.
value = True if value == "true" else False
elif value == 'None':
# None.
value = None
elif tag in ('created_on', 'edited_on'):
# ISO datetime.
value = dateutil.parser.parse(value)
@@ -204,9 +207,6 @@ class AssetMetadata(object):
elif tag == 'fields':
# Dictionary.
value = json.loads(value)
elif value == 'None':
# None.
value = None
setattr(self, tag, value)
@contract(node='AssetElement')

View File

@@ -57,6 +57,18 @@ class TestAssetXml(unittest.TestCase):
new_value = getattr(new_asset_md, attr)
self.assertEqual(orig_value, new_value)
def test_export_with_None_value(self):
"""
Export and import a single AssetMetadata to XML with a None created_by field, without causing an exception.
"""
asset_md = AssetMetadata(
self.course_id.make_asset_key('asset', 'none_value'),
created_by=None,
)
asset = etree.Element("asset")
asset_md.to_xml(asset)
asset_md.from_xml(asset)
def test_export_all_assets_to_xml(self):
"""
Export all AssetMetadatas to XML and verify the structure and fields.