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)
Пример #6
0
    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)