Exemplo n.º 1
0
 def test_tuple_coder(self):
     kv_coder = coders.TupleCoder(
         (coders.VarIntCoder(), coders.BytesCoder()))
     # Verify cloud object representation
     self.assertEqual(
         {
             '@type':
             'kind:pair',
             'is_pair_like':
             True,
             'component_encodings': [
                 coders.VarIntCoder().as_cloud_object(),
                 coders.BytesCoder().as_cloud_object()
             ],
         }, kv_coder.as_cloud_object())
     # Test binary representation
     self.assertEqual('\x04abc', kv_coder.encode((4, 'abc')))
     # Test unnested
     self.check_coder(kv_coder, (1, 'a'), (-2, 'a' * 100),
                      (300, 'abc\0' * 5))
     # Test nested
     self.check_coder(
         coders.TupleCoder((coders.TupleCoder(
             (coders.PickleCoder(), coders.VarIntCoder())),
                            coders.StrUtf8Coder())), ((1, 2), 'a'),
         ((-2, 5), u'a\u0101' * 100), ((300, 1), 'abc\0' * 5))
 def test_tuple_coder(self):
     self.check_coder(
         coders.TupleCoder((coders.VarIntCoder(), coders.BytesCoder())),
         (1, 'a'), (-2, 'a' * 100), (300, 'abc\0' * 5))
     self.check_coder(
         coders.TupleCoder((coders.TupleCoder(
             (coders.PickleCoder(), coders.VarIntCoder())),
                            coders.StrUtf8Coder())), ((1, 2), 'a'),
         ((-2, 5), u'a\u0101' * 100), ((300, 1), 'abc\0' * 5))
Exemplo n.º 3
0
 def test_length_prefix_coder(self):
     coder = coders.LengthPrefixCoder(coders.BytesCoder())
     # Verify cloud object representation
     self.assertEqual(
         {
             '@type': 'kind:length_prefix',
             'component_encodings': [coders.BytesCoder().as_cloud_object()]
         }, coder.as_cloud_object())
     # Test binary representation
     self.assertEqual('\x00', coder.encode(''))
     self.assertEqual('\x01a', coder.encode('a'))
     self.assertEqual('\x02bc', coder.encode('bc'))
     self.assertEqual('\xff\x7f' + 'z' * 16383, coder.encode('z' * 16383))
     # Test unnested
     self.check_coder(coder, '', 'a', 'bc', 'def')
     # Test nested
     self.check_coder(coders.TupleCoder((coder, coder)), ('', 'a'),
                      ('bc', 'def'))
Exemplo n.º 4
0
 def test_timestamp_coder(self):
     self.check_coder(
         coders.TimestampCoder(),
         *[timestamp.Timestamp(micros=x) for x in range(-100, 100)])
     self.check_coder(coders.TimestampCoder(),
                      timestamp.Timestamp(micros=-1234567890),
                      timestamp.Timestamp(micros=1234567890))
     self.check_coder(coders.TimestampCoder(),
                      timestamp.Timestamp(micros=-1234567890123456789),
                      timestamp.Timestamp(micros=1234567890123456789))
     self.check_coder(
         coders.TupleCoder((coders.TimestampCoder(), coders.BytesCoder())),
         (timestamp.Timestamp.of(27), 'abc'))
Exemplo n.º 5
0
    def test_proto_coder(self):
        # For instructions on how these test proto message were generated,
        # see coders_test.py
        ma = test_message.MessageA()
        mab = ma.field2.add()
        mab.field1 = True
        ma.field1 = u'hello world'

        mb = test_message.MessageA()
        mb.field1 = u'beam'

        proto_coder = coders.ProtoCoder(ma.__class__)
        self.check_coder(proto_coder, ma)
        self.check_coder(coders.TupleCoder((proto_coder, coders.BytesCoder())),
                         (ma, 'a'), (mb, 'b'))
    def test_custom_coder(self):

        self.check_coder(CustomCoder(), 1, -10, 5)
        self.check_coder(
            coders.TupleCoder((CustomCoder(), coders.BytesCoder())), (1, 'a'),
            (-10, 'b'), (5, 'c'))
 def test_bytes_coder(self):
     self.check_coder(coders.BytesCoder(), 'a', '\0', 'z' * 1000)