def test_serialize_versioned_none(self): obj = DummyADTObjectWithVersions() marshal = Marshal() with self.assertRaises(RuntimeError) as caught: xml = marshal.serialize(obj) self.assertEqual( str(caught.exception), 'The XML item mock:elemverfst specifies but its parent class does not' )
def test_serialize_versioned_ver3(self): obj = DummyADTObjectWithVersions() marshal = Marshal(object_schema_version='V3') xml = marshal.serialize(obj) self.maxDiff = None self.assertEqual( xml, '''<?xml version="1.0" encoding="UTF-8"?> <mock:versioned xmlns:mock="https://github.com/jfilak/sapcli/mock" mock:attrverall="Init-attr-all"> <adtcore:packageRef/> <mock:elemverall>Init-elem-all</mock:elemverall> </mock:versioned>''')
def test_deserialization(self): obj = Dummy() marshal = Marshal() xml_data = marshal.serialize(obj) clone = DummyWithSetters() ret = Marshal.deserialize(xml_data, clone) self.assertEqual(clone, ret) self.assertEqual(obj.first, clone.first) self.assertEqual(obj.second, clone.second) self.assertEqual('EEE', clone.third) self.assertEqual(obj.value.first, clone.value.first) self.assertEqual(obj.value.second, clone.value.second) self.assertEqual(obj.value.supernested.yetanother, clone.value.supernested.yetanother)