Example #1
0
 def test_decode_nested_unsized_values(self):
     data = self.decode(b('a\xffa\xffB\x2aEo\xffs\x03fooB\x2aEE'))
     self.assertTrue(isinstance(data, GeneratorType))
     item = data.next()
     self.assertTrue(isinstance(item, list))
     self.assertEqual(item, [42])
     item = data.next()
     self.assertTrue(isinstance(item, list))
     self.assertEqual(item, [(b('foo'), 42)])
Example #2
0
    def test_allow_emit_noop_for_objects(self):
        data = self.decode(b('{NSi\x03fooNSi\x03barN}'), allow_noop=True)
        self.assertTrue(isinstance(data, GeneratorType))
        data = list(data)
        N = simpleubjson.NOOP
        self.assertEqual(data, [(N, N), ('foo', 'bar'), (N, N)])
        self.assertEqual(dict(data), {'foo': 'bar', N: N})

        data = self.decode(b('[i\x00Ni\x01Ni\x02Ni\x03Ni\x04]'),
                           allow_noop=True)
        N = simpleubjson.NOOP
        self.assertEqual(list(data), [0, N, 1, N, 2, N, 3, N, 4])
Example #3
0
    def test_allow_emit_noop_for_objects(self):
        data = self.decode(b('{NSi\x03fooNSi\x03barN}'),
                                   allow_noop=True)
        self.assertTrue(isinstance(data, GeneratorType))
        data = list(data)
        N = simpleubjson.NOOP
        self.assertEqual(data, [(N, N), ('foo', 'bar'), (N, N)])
        self.assertEqual(dict(data), {'foo': 'bar', N: N})

        data = self.decode(b('[i\x00Ni\x01Ni\x02Ni\x03Ni\x04]'),
                                   allow_noop=True)
        N = simpleubjson.NOOP
        self.assertEqual(list(data), [0, N, 1, N, 2, N, 3, N, 4])
Example #4
0
 def test_custom_default_handler(self):
     sentinel = object()
     def dummy(value):
         assert value is sentinel
         return [b('sentinel')]
     data = self.encode(sentinel, default=dummy)
     self.assertEqual(data, b('a\x01s\x08sentinel'))
Example #5
0
 def test_custom_default_handler(self):
     sentinel = object()
     def dummy(value):
         assert value is sentinel
         return [b('sentinel')]
     data = self.encode(sentinel, default=dummy)
     self.assertEqual(data, b('[Si\x08sentinel]'))
Example #6
0
 def test_decode_huge_float(self):
     source = b(
         'Hi\x35-3.14159265358979323846264338327950288419716939937510')
     expected = Decimal(
         '-3.14159265358979323846264338327950288419716939937510')
     data = self.decode(source)
     self.assertEqual(data, expected)
Example #7
0
    def test_custom_default_handler(self):
        def dummy(stream, markers, tag):
            assert tag == '%'
            return markers['s'], ('s', 3, b('foo'))
#        data = self.decode(b('%'), default=dummy)
#        self.assertEqual(data, 'foo')
        self.assertRaises(TypeError, self.decode, b('%'), default=dummy)
Example #8
0
 def test_custom_default_handler(self):
     def dummy(stream, markers, tag):
         assert tag == '%'
         return markers['s'], ('s', 3, b('foo'))
     #        data = self.decode(b('%'), default=dummy)
     #        self.assertEqual(data, 'foo')
     self.assertRaises(TypeError, self.decode, b('%'), default=dummy)
Example #9
0
 def test_decode_nested_unsized_values(self):
     data = self.decode(b('[[i\x2a]{Si\x03fooi\x2a}]'))
     self.assertTrue(isinstance(data, GeneratorType))
     for item in data:
         break
     else:
         self.fail('next item expected')
     self.assertTrue(isinstance(item, list))
     self.assertEqual(item, [42])
     for item in data:
         break
     else:
         self.fail('next item expected')
     self.assertTrue(isinstance(item, list))
     self.assertEqual(item, [('foo', 42)])
Example #10
0
 def test_decode_nested_unsized_values(self):
     data = self.decode(b('[[i\x2a]{Si\x03fooi\x2a}]'))
     self.assertTrue(isinstance(data, GeneratorType))
     for item in data:
         break
     else:
         self.fail('next item expected')
     self.assertTrue(isinstance(item, list))
     self.assertEqual(item, [42])
     for item in data:
         break
     else:
         self.fail('next item expected')
     self.assertTrue(isinstance(item, list))
     self.assertEqual(item, [('foo', 42)])
Example #11
0
 def dummy(stream, markers, tag):
     assert tag == '%'
     return markers['s'], ('s', 3, b('foo'))
Example #12
0
 def test_decode_unsized_array_with_noops(self):
     data = self.decode(b('[Ni\x01NNNi\x02NNNNNNNNNNNNNi\x03]'))
     self.assertTrue(isinstance(data, GeneratorType))
     self.assertEqual(list(data), [1, 2, 3])
Example #13
0
 def test_false_encode(self):
     data = self.encode(False)
     self.assertEqual(data, b('F'))
Example #14
0
 def test_fail_decode_on_early_end(self):
     self.assertRaises(ValueError, list, self.decode(b('{i\x01')))
Example #15
0
 def test_encode_object(self):
     data = self.encode({'foo': 'bar'})
     self.assertEqual(data, b('{Si\x03fooSi\x03bar}'))
Example #16
0
 def test_allow_emit_noop_for_arrays(self):
     data = self.decode(b('[i\x00Ni\x01Ni\x02Ni\x03Ni\x04]'),
                        allow_noop=True)
     N = simpleubjson.NOOP
     self.assertEqual(list(data), [0, N, 1, N, 2, N, 3, N, 4])
Example #17
0
 def test_fail_decode_on_early_eos(self):
     data = self.decode(b('{Si\x03foo}'))
     self.assertRaises(ValueError, list, data)
Example #18
0
 def test_encode_dict_iteritems(self):
     data = {'foo': 'bar'}
     data = self.encode(getattr(data, 'iteritems', data.items)())
     self.assertEqual(data, b('{Si\x03fooSi\x03bar}'))
Example #19
0
 def test_encode_dict_itervalues(self):
     data = {'foo': 'bar'}
     data = self.encode(getattr(data, 'itervalues', data.values)())
     self.assertEqual(data, b('[Si\x03bar]'))
Example #20
0
 def test_encode_dict_iterkeys(self):
     data = {'foo': 'bar'}
     data = self.encode(getattr(data, 'iterkeys', data.keys)())
     self.assertEqual(data, b('[Si\x03foo]'))
Example #21
0
 def test_encode_xrange(self):
     data = self.encode(xrange(4))
     self.assertEqual(data, b('[i\x00i\x01i\x02i\x03]'))
Example #22
0
 def dummy(stream, markers, tag):
     assert tag == '%'
     return markers['s'], ('s', 3, b('foo'))
Example #23
0
 def test_encode_dict_itervalues(self):
     data = {'foo': 'bar'}
     data = self.encode(getattr(data, 'itervalues', data.values)())
     self.assertEqual(data, b('[Si\x03bar]'))
Example #24
0
 def test_fail_decode_on_early_eos(self):
     data = self.decode(b('{Si\x03foo}'))
     self.assertRaises(ValueError, list, data)
Example #25
0
 def test_fail_decode_object_with_nonstring_key(self):
     data = self.decode(b('{i\x03Si\x03foo}'))
     self.assertRaises(ValueError, list, data)
Example #26
0
 def test_decode_object(self):
     data = dict(self.decode(b('{Si\x03fooSi\x03barSi\x03barSi\x03baz}')))
     self.assertEqual(data, {'foo': 'bar', 'bar': 'baz'})
Example #27
0
 def test_allow_emit_noop_for_arrays(self):
     data = self.decode(b('[i\x00Ni\x01Ni\x02Ni\x03Ni\x04]'),
                                allow_noop=True)
     N = simpleubjson.NOOP
     self.assertEqual(list(data), [0, N, 1, N, 2, N, 3, N, 4])
Example #28
0
 def test_should_skip_noop_markers_in_sized_object(self):
     data = dict(self.decode(
         b('{Si\x03fooSi\x03barNNNSi\x03barSi\x03baz}')))
     self.assertEqual(data, {'foo': 'bar', 'bar': 'baz'})
Example #29
0
 def test_decode_unsized_array(self):
     data = self.decode(b('[i\x01i\x02i\x03]'))
     self.assertTrue(isinstance(data, GeneratorType))
     self.assertEqual(list(data), [1, 2, 3])
Example #30
0
 def test_decode_unsized_array(self):
     data = self.decode(b('[i\x01i\x02i\x03]'))
     self.assertTrue(isinstance(data, GeneratorType))
     self.assertEqual(list(data), [1, 2, 3])
Example #31
0
 def test_decode_unsized_object(self):
     data = self.decode(b('{Si\x03fooSi\x03barSi\x03barSi\x03baz}'))
     self.assertTrue(isinstance(data, GeneratorType))
     self.assertEqual(dict(data), {'foo': 'bar', 'bar': 'baz'})
Example #32
0
 def test_decode_object(self):
     data = dict(self.decode(b('{Si\x03fooSi\x03barSi\x03barSi\x03baz}')))
     self.assertEqual(data, {'foo': 'bar', 'bar': 'baz'})
Example #33
0
 def test_decode_unsized_object(self):
     data = self.decode(b('{Si\x03fooSi\x03barSi\x03barSi\x03baz}'))
     self.assertTrue(isinstance(data, GeneratorType))
     self.assertEqual(dict(data), {'foo': 'bar', 'bar': 'baz'})
Example #34
0
 def test_encode_generator(self):
     data = self.encode((i for i in range(7)))
     self.assertEqual(data, b('[i\x00i\x01i\x02i\x03i\x04i\x05i\x06]'))
Example #35
0
 def test_decode_object_with_char_key(self):
     data = dict(self.decode(b('{CUSi\x06UBJSON}')))
     self.assertEqual(data, {'U': 'UBJSON'})
Example #36
0
 def test_decode_unsized_array_with_noops(self):
     data = self.decode(b('[Ni\x01NNNi\x02NNNNNNNNNNNNNi\x03]'))
     self.assertTrue(isinstance(data, GeneratorType))
     self.assertEqual(list(data), [1, 2, 3])
Example #37
0
 def test_encode_object(self):
     data = self.encode({'foo': 'bar'})
     self.assertEqual(data, b('{Si\x03fooSi\x03bar}'))
Example #38
0
 def test_encode_xrange(self):
     data = self.encode(xrange(4))
     self.assertEqual(data, b('[i\x00i\x01i\x02i\x03]'))
Example #39
0
 def test_decode_object_with_nested_unsized_objects(self):
     source = b('{Si\x03bar[i\x2a]Si\x03baz{NNNSi\x03fooi\x2a}}')
     data = dict(self.decode(source))
     self.assertEqual(data, {'baz': [('foo', 42)], 'bar': [42]})
Example #40
0
 def test_encode_dict_iterkeys(self):
     data = {'foo': 'bar'}
     data = self.encode(getattr(data, 'iterkeys', data.keys)())
     self.assertEqual(data, b('[Si\x03foo]'))
Example #41
0
 def test_should_skip_noop_markers_in_sized_object(self):
     data = dict(self.decode(b('{Si\x03fooSi\x03barNNNSi\x03barSi\x03baz}')))
     self.assertEqual(data, {'foo': 'bar', 'bar': 'baz'})
Example #42
0
 def test_encode_dict_iteritems(self):
     data = {'foo': 'bar'}
     data = self.encode(getattr(data, 'iteritems', data.items)())
     self.assertEqual(data, b('{Si\x03fooSi\x03bar}'))
Example #43
0
 def test_fail_decode_non_string_object_keys(self):
     self.assertRaises(ValueError,
                       list,
                       self.decode(b('{i\x03Si\x03bar}')))
Example #44
0
 def test_fail_decode_object_with_nonstring_key(self):
     data = self.decode(b('{i\x03Si\x03foo}'))
     self.assertRaises(ValueError, list, data)
Example #45
0
 def test_fail_decode_on_early_end(self):
     self.assertRaises(ValueError, list, self.decode(b('{i\x01')))
Example #46
0
 def test_encode_frozenset(self):
     data = self.encode(frozenset(['foo', 'foo', 'foo']))
     self.assertEqual(data, b('[Si\x03foo]'))
Example #47
0
 def test_write_encoded_data_to_stream(self):
     stream = StringIO()
     self.encode((i for i in range(5)), stream)
     self.assertEqual(stream.getvalue(),
                      b('[i\x00i\x01i\x02i\x03i\x04]'))
Example #48
0
 def test_decode_object_with_char_key(self):
     data = dict(self.decode(b('{CUSi\x06UBJSON}')))
     self.assertEqual(data, {'U': 'UBJSON'})
Example #49
0
 def dummy(value):
     assert value is sentinel
     return [b('sentinel')]
Example #50
0
 def test_decode_object_with_nested_unsized_objects(self):
     source = b('{Si\x03bar[i\x2a]Si\x03baz{NNNSi\x03fooi\x2a}}')
     data = dict(self.decode(source))
     self.assertEqual(data, {'baz': [('foo', 42)], 'bar': [42]})
Example #51
0
 def test_encode(self):
     data = self.encode(None)
     self.assertEqual(data, b('Z'))
Example #52
0
 def test_fail_decode_non_string_object_keys(self):
     self.assertRaises(ValueError, list, self.decode(b('{i\x03Si\x03bar}')))
Example #53
0
 def test_encode(self):
     data = self.encode(None)
     self.assertEqual(data, b('Z'))
Example #54
0
 def test_write_encoded_data_to_stream(self):
     stream = StringIO()
     self.encode((i for i in range(5)), stream)
     self.assertEqual(stream.getvalue(), b('[i\x00i\x01i\x02i\x03i\x04]'))
Example #55
0
 def test_encode_generator(self):
     data = self.encode((i for i in range(7)))
     self.assertEqual(data, b('[i\x00i\x01i\x02i\x03i\x04i\x05i\x06]'))
Example #56
0
 def test_encode(self):
     data = self.encode(simpleubjson.NOOP)
     self.assertEqual(data, b('N'))
Example #57
0
 def dummy(value):
     assert value is sentinel
     return [b('sentinel')]
Example #58
0
 def test_false_encode(self):
     data = self.encode(False)
     self.assertEqual(data, b('F'))
Example #59
0
 def test_encode(self):
     data = self.encode(simpleubjson.NOOP)
     self.assertEqual(data, b('N'))