Ejemplo n.º 1
0
 def test_encode_decode_field_table_long_keys(self):
     """ Encoding and decoding a field_table with too long keys.
     """
     # second key is 126 A's + \N{PILE OF POO}
     data = {'A' * 256: 1,
             ((b'A' * 126) + b'\xf0\x9f\x92\xa9').decode('utf-8'): 2}
     encoded = encode.field_table(data)
     decoded = decode.field_table(encoded)[1]
     self.assertIn(b'A' * 128, decoded)
Ejemplo n.º 2
0
 def test_encode_field_table(self):
     expectation = (b'\x00\x00\x04\x13\x08arrayvalA\x00\x00\x00\ts\x00\x01s'
                    b'\x00\x02s\x00\x03\x07boolvalt\x01\x06decvalD\x02\x00'
                    b'\x00\x01:\x07dictvalF\x00\x00\x00\x0c\x03fooS\x00\x00'
                    b'\x00\x03bar\x08floatvlaf@H\xf5\xc3\x06intvals\x00\x01'
                    b'\x07longstrS\x00\x00\x03t0000000000000000000000000000'
                    b'00000000000000000000000011111111111111111111111111111'
                    b'11111111111111111111111222222222222222222222222222222'
                    b'22222222222222222222221111111111111111111111111111111'
                    b'11111111111111111111122222222222222222222222222222222'
                    b'22222222222222222222111111111111111111111111111111111'
                    b'11111111111111111112222222222222222222222222222222222'
                    b'22222222222222222211111111111111111111111111111111111'
                    b'11111111111111111222222222222222222222222222222222222'
                    b'22222222222222221111111111111111111111111111111111111'
                    b'11111111111111122222222222222222222222222222222222222'
                    b'22222222222222111111111111111111111111111111111111111'
                    b'11111111111112222222222222222222222222222222222222222'
                    b'22222222222211111111111111111111111111111111111111111'
                    b'11111111111222222222222222222222222222222222222222222'
                    b'22222222221111111111111111111111111111111111111111111'
                    b'11111111100000000000000000000000000000000000000000000'
                    b'00000000\x07longvalI6e&U\x06strvalS\x00\x00\x00\x04'
                    b'Test\x0ctimestampvalT\x00\x00\x00\x00Ec)\x92')
     data = {'intval': 1,
             'strval': b'Test',
             'boolval': True,
             'timestampval': datetime(2006, 11, 21, 16, 30, 10),
             'decval': Decimal('3.14'),
             'floatvla': 3.14,
             'longval': long(912598613),
             'dictval': {b'foo': b'bar'},
             'arrayval': [1, 2, 3],
             'longstr': ('0000000000000000000000000000000000000000000000000'
                         '0001111111111111111111111111111111111111111111111'
                         '1111112222222222222222222222222222222222222222222'
                         '2222222221111111111111111111111111111111111111111'
                         '1111111111112222222222222222222222222222222222222'
                         '2222222222222221111111111111111111111111111111111'
                         '1111111111111111112222222222222222222222222222222'
                         '2222222222222222222221111111111111111111111111111'
                         '1111111111111111111111112222222222222222222222222'
                         '2222222222222222222222222221111111111111111111111'
                         '1111111111111111111111111111112222222222222222222'
                         '2222222222222222222222222222222221111111111111111'
                         '1111111111111111111111111111111111112222222222222'
                         '2222222222222222222222222222222222222221111111111'
                         '1111111111111111111111111111111111111111112222222'
                         '2222222222222222222222222222222222222222222221111'
                         '1111111111111111111111111111111111111111111111110'
                         '0000000000000000000000000000000000000000000000000'
                         '00')}
     self.assertEqual(encode.field_table(data), expectation)
Ejemplo n.º 3
0
 def test_encode_field_table(self):
     expectation = (b"\x00\x00\x04'\x08arrayvalA\x00\x00\x00\x06b\x01b"
                    b'\x02b\x03\x07boolvalt\x01\tbytearrayx\x00\x00\x00'
                    b'\x03AAA\x06decvalD\x02\x00\x00\x01:\x07dictvalF\x00'
                    b'\x00\x00\x0c\x03fooS\x00\x00\x00\x03bar\x08floatval'
                    b'f@H\xf5\xc3\x06intvalb\x01\x07longstrS\x00\x00\x03t'
                    b'000000000000000000000000000000000000000000000000000'
                    b'011111111111111111111111111111111111111111111111111'
                    b'112222222222222222222222222222222222222222222222222'
                    b'222111111111111111111111111111111111111111111111111'
                    b'111122222222222222222222222222222222222222222222222'
                    b'222221111111111111111111111111111111111111111111111'
                    b'111111222222222222222222222222222222222222222222222'
                    b'222222211111111111111111111111111111111111111111111'
                    b'111111112222222222222222222222222222222222222222222'
                    b'222222222111111111111111111111111111111111111111111'
                    b'111111111122222222222222222222222222222222222222222'
                    b'222222222221111111111111111111111111111111111111111'
                    b'111111111111222222222222222222222222222222222222222'
                    b'222222222222211111111111111111111111111111111111111'
                    b'111111111111112222222222222222222222222222222222222'
                    b'222222222222222111111111111111111111111111111111111'
                    b'111111111111111100000000000000000000000000000000000'
                    b'00000000000000000\x07longvalI6e&U\x04noneV\x06strva'
                    b'lS\x00\x00\x00\x04Test\x0ctimestampvalT\x00\x00\x00'
                    b'\x00Ec)\x92')
     data = {
         'intval': 1,
         'strval': 'Test',
         'boolval': True,
         'timestampval': datetime.datetime(2006, 11, 21, 16, 30, 10),
         'decval': decimal.Decimal('3.14'),
         'floatval': 3.14,
         'longval': 912598613,
         'dictval': {
             'foo': 'bar'
         },
         'arrayval': [1, 2, 3],
         'none': None,
         'bytearray': bytearray((65, 65, 65)),
         'longstr': ('0000000000000000000000000000000000000000000000000'
                     '0001111111111111111111111111111111111111111111111'
                     '1111112222222222222222222222222222222222222222222'
                     '2222222221111111111111111111111111111111111111111'
                     '1111111111112222222222222222222222222222222222222'
                     '2222222222222221111111111111111111111111111111111'
                     '1111111111111111112222222222222222222222222222222'
                     '2222222222222222222221111111111111111111111111111'
                     '1111111111111111111111112222222222222222222222222'
                     '2222222222222222222222222221111111111111111111111'
                     '1111111111111111111111111111112222222222222222222'
                     '2222222222222222222222222222222221111111111111111'
                     '1111111111111111111111111111111111112222222222222'
                     '2222222222222222222222222222222222222221111111111'
                     '1111111111111111111111111111111111111111112222222'
                     '2222222222222222222222222222222222222222222221111'
                     '1111111111111111111111111111111111111111111111110'
                     '0000000000000000000000000000000000000000000000000'
                     '00')
     }
     self.assertEqual(encode.field_table(data), expectation)
Ejemplo n.º 4
0
 def test_encode_field_table_empty(self):
     self.assertEqual(encode.field_table(None), b'\x00\x00\x00\x00')
Ejemplo n.º 5
0
 def test_encode_field_table(self):
     expectation = (b"\x00\x00\x04'\x08arrayvalA\x00\x00\x00\x06b\x01b"
                    b'\x02b\x03\x07boolvalt\x01\tbytearrayx\x00\x00\x00'
                    b'\x03AAA\x06decvalD\x02\x00\x00\x01:\x07dictvalF\x00'
                    b'\x00\x00\x0c\x03fooS\x00\x00\x00\x03bar\x08floatval'
                    b'f@H\xf5\xc3\x06intvalb\x01\x07longstrS\x00\x00\x03t'
                    b'000000000000000000000000000000000000000000000000000'
                    b'011111111111111111111111111111111111111111111111111'
                    b'112222222222222222222222222222222222222222222222222'
                    b'222111111111111111111111111111111111111111111111111'
                    b'111122222222222222222222222222222222222222222222222'
                    b'222221111111111111111111111111111111111111111111111'
                    b'111111222222222222222222222222222222222222222222222'
                    b'222222211111111111111111111111111111111111111111111'
                    b'111111112222222222222222222222222222222222222222222'
                    b'222222222111111111111111111111111111111111111111111'
                    b'111111111122222222222222222222222222222222222222222'
                    b'222222222221111111111111111111111111111111111111111'
                    b'111111111111222222222222222222222222222222222222222'
                    b'222222222222211111111111111111111111111111111111111'
                    b'111111111111112222222222222222222222222222222222222'
                    b'222222222222222111111111111111111111111111111111111'
                    b'111111111111111100000000000000000000000000000000000'
                    b'00000000000000000\x07longvalI6e&U\x04noneV\x06strva'
                    b'lS\x00\x00\x00\x04Test\x0ctimestampvalT\x00\x00\x00'
                    b'\x00Ec)\x92')
     data = {
         'intval': 1,
         'strval': b'Test',
         'boolval': True,
         'timestampval': datetime(2006, 11, 21, 16, 30, 10),
         'decval': Decimal('3.14'),
         'floatval': 3.14,
         'longval': long(912598613),
         'dictval': {
             b'foo': b'bar'
         },
         'arrayval': [1, 2, 3],
         'none': None,
         'bytearray': bytearray((65, 65, 65)),
         'longstr': ('0000000000000000000000000000000000000000000000000'
                     '0001111111111111111111111111111111111111111111111'
                     '1111112222222222222222222222222222222222222222222'
                     '2222222221111111111111111111111111111111111111111'
                     '1111111111112222222222222222222222222222222222222'
                     '2222222222222221111111111111111111111111111111111'
                     '1111111111111111112222222222222222222222222222222'
                     '2222222222222222222221111111111111111111111111111'
                     '1111111111111111111111112222222222222222222222222'
                     '2222222222222222222222222221111111111111111111111'
                     '1111111111111111111111111111112222222222222222222'
                     '2222222222222222222222222222222221111111111111111'
                     '1111111111111111111111111111111111112222222222222'
                     '2222222222222222222222222222222222222221111111111'
                     '1111111111111111111111111111111111111111112222222'
                     '2222222222222222222222222222222222222222222221111'
                     '1111111111111111111111111111111111111111111111110'
                     '0000000000000000000000000000000000000000000000000'
                     '00')
     }
     self.assertEqual(encode.field_table(data), expectation)
Ejemplo n.º 6
0
 def test_encode_field_table_empty(self):
     self.assertEqual(encode.field_table(None), b'\x00\x00\x00\x00')
Ejemplo n.º 7
0
 def test_encode_field_table(self):
     expectation = (b'\x00\x00\x04\x13\x08arrayvalA\x00\x00\x00\ts\x00\x01s'
                    b'\x00\x02s\x00\x03\x07boolvalt\x01\x06decvalD\x02\x00'
                    b'\x00\x01:\x07dictvalF\x00\x00\x00\x0c\x03fooS\x00\x00'
                    b'\x00\x03bar\x08floatvlaf@H\xf5\xc3\x06intvals\x00\x01'
                    b'\x07longstrS\x00\x00\x03t0000000000000000000000000000'
                    b'00000000000000000000000011111111111111111111111111111'
                    b'11111111111111111111111222222222222222222222222222222'
                    b'22222222222222222222221111111111111111111111111111111'
                    b'11111111111111111111122222222222222222222222222222222'
                    b'22222222222222222222111111111111111111111111111111111'
                    b'11111111111111111112222222222222222222222222222222222'
                    b'22222222222222222211111111111111111111111111111111111'
                    b'11111111111111111222222222222222222222222222222222222'
                    b'22222222222222221111111111111111111111111111111111111'
                    b'11111111111111122222222222222222222222222222222222222'
                    b'22222222222222111111111111111111111111111111111111111'
                    b'11111111111112222222222222222222222222222222222222222'
                    b'22222222222211111111111111111111111111111111111111111'
                    b'11111111111222222222222222222222222222222222222222222'
                    b'22222222221111111111111111111111111111111111111111111'
                    b'11111111100000000000000000000000000000000000000000000'
                    b'00000000\x07longvalI6e&U\x06strvalS\x00\x00\x00\x04'
                    b'Test\x0ctimestampvalT\x00\x00\x00\x00Ec)\x92')
     data = {
         'intval':
         1,
         'strval':
         b'Test',
         'boolval':
         True,
         'timestampval':
         datetime(2006, 11, 21, 16, 30, 10),
         'decval':
         Decimal('3.14'),
         'floatvla':
         3.14,
         'longval':
         long(912598613),
         'dictval': {
             b'foo': b'bar'
         },
         'arrayval': [1, 2, 3],
         'longstr': ('0000000000000000000000000000000000000000000000000'
                     '0001111111111111111111111111111111111111111111111'
                     '1111112222222222222222222222222222222222222222222'
                     '2222222221111111111111111111111111111111111111111'
                     '1111111111112222222222222222222222222222222222222'
                     '2222222222222221111111111111111111111111111111111'
                     '1111111111111111112222222222222222222222222222222'
                     '2222222222222222222221111111111111111111111111111'
                     '1111111111111111111111112222222222222222222222222'
                     '2222222222222222222222222221111111111111111111111'
                     '1111111111111111111111111111112222222222222222222'
                     '2222222222222222222222222222222221111111111111111'
                     '1111111111111111111111111111111111112222222222222'
                     '2222222222222222222222222222222222222221111111111'
                     '1111111111111111111111111111111111111111112222222'
                     '2222222222222222222222222222222222222222222221111'
                     '1111111111111111111111111111111111111111111111110'
                     '0000000000000000000000000000000000000000000000000'
                     '00')
     }
     self.assertEqual(encode.field_table(data), expectation)