コード例 #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)])
コード例 #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])
コード例 #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])
コード例 #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'))
コード例 #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]'))
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)])
コード例 #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)])
コード例 #11
0
 def dummy(stream, markers, tag):
     assert tag == '%'
     return markers['s'], ('s', 3, b('foo'))
コード例 #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])
コード例 #13
0
 def test_false_encode(self):
     data = self.encode(False)
     self.assertEqual(data, b('F'))
コード例 #14
0
 def test_fail_decode_on_early_end(self):
     self.assertRaises(ValueError, list, self.decode(b('{i\x01')))
コード例 #15
0
 def test_encode_object(self):
     data = self.encode({'foo': 'bar'})
     self.assertEqual(data, b('{Si\x03fooSi\x03bar}'))
コード例 #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])
コード例 #17
0
 def test_fail_decode_on_early_eos(self):
     data = self.decode(b('{Si\x03foo}'))
     self.assertRaises(ValueError, list, data)
コード例 #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}'))
コード例 #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]'))
コード例 #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]'))
コード例 #21
0
 def test_encode_xrange(self):
     data = self.encode(xrange(4))
     self.assertEqual(data, b('[i\x00i\x01i\x02i\x03]'))
コード例 #22
0
 def dummy(stream, markers, tag):
     assert tag == '%'
     return markers['s'], ('s', 3, b('foo'))
コード例 #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]'))
コード例 #24
0
 def test_fail_decode_on_early_eos(self):
     data = self.decode(b('{Si\x03foo}'))
     self.assertRaises(ValueError, list, data)
コード例 #25
0
 def test_fail_decode_object_with_nonstring_key(self):
     data = self.decode(b('{i\x03Si\x03foo}'))
     self.assertRaises(ValueError, list, data)
コード例 #26
0
 def test_decode_object(self):
     data = dict(self.decode(b('{Si\x03fooSi\x03barSi\x03barSi\x03baz}')))
     self.assertEqual(data, {'foo': 'bar', 'bar': 'baz'})
コード例 #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])
コード例 #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'})
コード例 #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])
コード例 #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])
コード例 #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'})
コード例 #32
0
 def test_decode_object(self):
     data = dict(self.decode(b('{Si\x03fooSi\x03barSi\x03barSi\x03baz}')))
     self.assertEqual(data, {'foo': 'bar', 'bar': 'baz'})
コード例 #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'})
コード例 #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]'))
コード例 #35
0
 def test_decode_object_with_char_key(self):
     data = dict(self.decode(b('{CUSi\x06UBJSON}')))
     self.assertEqual(data, {'U': 'UBJSON'})
コード例 #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])
コード例 #37
0
 def test_encode_object(self):
     data = self.encode({'foo': 'bar'})
     self.assertEqual(data, b('{Si\x03fooSi\x03bar}'))
コード例 #38
0
 def test_encode_xrange(self):
     data = self.encode(xrange(4))
     self.assertEqual(data, b('[i\x00i\x01i\x02i\x03]'))
コード例 #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]})
コード例 #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]'))
コード例 #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'})
コード例 #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}'))
コード例 #43
0
 def test_fail_decode_non_string_object_keys(self):
     self.assertRaises(ValueError,
                       list,
                       self.decode(b('{i\x03Si\x03bar}')))
コード例 #44
0
 def test_fail_decode_object_with_nonstring_key(self):
     data = self.decode(b('{i\x03Si\x03foo}'))
     self.assertRaises(ValueError, list, data)
コード例 #45
0
 def test_fail_decode_on_early_end(self):
     self.assertRaises(ValueError, list, self.decode(b('{i\x01')))
コード例 #46
0
 def test_encode_frozenset(self):
     data = self.encode(frozenset(['foo', 'foo', 'foo']))
     self.assertEqual(data, b('[Si\x03foo]'))
コード例 #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]'))
コード例 #48
0
 def test_decode_object_with_char_key(self):
     data = dict(self.decode(b('{CUSi\x06UBJSON}')))
     self.assertEqual(data, {'U': 'UBJSON'})
コード例 #49
0
 def dummy(value):
     assert value is sentinel
     return [b('sentinel')]
コード例 #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]})
コード例 #51
0
 def test_encode(self):
     data = self.encode(None)
     self.assertEqual(data, b('Z'))
コード例 #52
0
 def test_fail_decode_non_string_object_keys(self):
     self.assertRaises(ValueError, list, self.decode(b('{i\x03Si\x03bar}')))
コード例 #53
0
 def test_encode(self):
     data = self.encode(None)
     self.assertEqual(data, b('Z'))
コード例 #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]'))
コード例 #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]'))
コード例 #56
0
 def test_encode(self):
     data = self.encode(simpleubjson.NOOP)
     self.assertEqual(data, b('N'))
コード例 #57
0
 def dummy(value):
     assert value is sentinel
     return [b('sentinel')]
コード例 #58
0
 def test_false_encode(self):
     data = self.encode(False)
     self.assertEqual(data, b('F'))
コード例 #59
0
 def test_encode(self):
     data = self.encode(simpleubjson.NOOP)
     self.assertEqual(data, b('N'))