def testBasics(self): u = test_unions_mojom.PodUnion() self.assertTrue(u.IsUnknown()) u.f_uint32 = 32 self.assertEquals(u.f_uint32, 32) self.assertEquals(u.data, 32) self.assertEquals(test_unions_mojom.PodUnion.Tags.f_uint32, u.tag) self.assertFalse(u.IsUnknown()) u = test_unions_mojom.PodUnion(f_uint8=8) self.assertEquals(u.f_uint8, 8) self.assertEquals(u.data, 8) self.assertEquals(test_unions_mojom.PodUnion.Tags.f_uint8, u.tag) with self.assertRaises(TypeError): test_unions_mojom.PodUnion(f_uint8=8, f_int16=10) with self.assertRaises(AttributeError): test_unions_mojom.PodUnion(bad_field=10) with self.assertRaises(AttributeError): u = test_unions_mojom.PodUnion() u.bad_field = 32 with self.assertRaises(AttributeError): _ = u.f_uint16
def testNonNullableNullUnionInArray(self): s = test_unions_mojom.SmallStruct() s.pod_union_array = [ test_unions_mojom.PodUnion(f_uint32=32), None, test_unions_mojom.PodUnion(f_uint64=64), ] with self.assertRaises(serialization.SerializationException): s.Serialize()
def testUnionInMap(self): s = test_unions_mojom.SmallStruct() s.pod_union_map = { 'f_uint32': test_unions_mojom.PodUnion(f_uint32=32), 'f_uint16': test_unions_mojom.PodUnion(f_uint16=16), 'f_uint64': test_unions_mojom.PodUnion(f_uint64=64), } (data, handles) = s.Serialize() context = serialization.RootDeserializationContext(data, handles) decoded = test_unions_mojom.SmallStruct.Deserialize(context) self.assertEquals(s, decoded)
def testNullableNullUnionInArray(self): s = test_unions_mojom.SmallStruct() s.nullable_pod_union_array = [ test_unions_mojom.PodUnion(f_uint32=32), None, test_unions_mojom.PodUnion(f_uint64=64), ] (data, handles) = s.Serialize() context = serialization.RootDeserializationContext(data, handles) decoded = test_unions_mojom.SmallStruct.Deserialize(context) self.assertEquals(s, decoded)
def testPodUnionSerialization(self): u = test_unions_mojom.PodUnion(f_uint32=32) (data, handles) = u.Serialize() context = serialization.RootDeserializationContext(data, handles) decoded = test_unions_mojom.PodUnion.Deserialize(context) self.assertFalse(decoded.IsUnknown()) self.assertEquals(u, decoded)
def doBoolInUnionSerializationTest(self, bool_value): u = test_unions_mojom.PodUnion(f_bool=bool_value) data, handles = u.Serialize() context = serialization.RootDeserializationContext(data, handles) decoded = test_unions_mojom.PodUnion.Deserialize(context) self.assertEquals(u, decoded)
def testNestedUnionSerialization(self): u = test_unions_mojom.ObjectUnion( f_pod_union=test_unions_mojom.PodUnion(f_int32=32)) (data, handles) = u.Serialize() context = serialization.RootDeserializationContext(data, handles) decoded = test_unions_mojom.ObjectUnion.Deserialize(context) self.assertEquals(u, decoded)
def testUnionInObject(self): s = test_unions_mojom.SmallStruct() s.pod_union = test_unions_mojom.PodUnion(f_uint32=32) (data, handles) = s.Serialize() # This is where the data should be serialized to. size, tag, value = struct.unpack_from('<IIQ', buffer(data), 16) self.assertEquals(16, size) self.assertEquals(6, tag) self.assertEquals(32, value) context = serialization.RootDeserializationContext(data, handles) decoded = test_unions_mojom.SmallStruct.Deserialize(context) self.assertEquals(s, decoded)