summaryrefslogtreecommitdiffstats
path: root/pyload/lib/simplejson/tests/test_dump.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/lib/simplejson/tests/test_dump.py')
-rw-r--r--pyload/lib/simplejson/tests/test_dump.py121
1 files changed, 0 insertions, 121 deletions
diff --git a/pyload/lib/simplejson/tests/test_dump.py b/pyload/lib/simplejson/tests/test_dump.py
deleted file mode 100644
index 1d118d929..000000000
--- a/pyload/lib/simplejson/tests/test_dump.py
+++ /dev/null
@@ -1,121 +0,0 @@
-from unittest import TestCase
-from simplejson.compat import StringIO, long_type, b, binary_type, PY3
-import simplejson as json
-
-def as_text_type(s):
- if PY3 and isinstance(s, binary_type):
- return s.decode('ascii')
- return s
-
-class TestDump(TestCase):
- def test_dump(self):
- sio = StringIO()
- json.dump({}, sio)
- self.assertEqual(sio.getvalue(), '{}')
-
- def test_constants(self):
- for c in [None, True, False]:
- self.assertTrue(json.loads(json.dumps(c)) is c)
- self.assertTrue(json.loads(json.dumps([c]))[0] is c)
- self.assertTrue(json.loads(json.dumps({'a': c}))['a'] is c)
-
- def test_stringify_key(self):
- items = [(b('bytes'), 'bytes'),
- (1.0, '1.0'),
- (10, '10'),
- (True, 'true'),
- (False, 'false'),
- (None, 'null'),
- (long_type(100), '100')]
- for k, expect in items:
- self.assertEqual(
- json.loads(json.dumps({k: expect})),
- {expect: expect})
- self.assertEqual(
- json.loads(json.dumps({k: expect}, sort_keys=True)),
- {expect: expect})
- self.assertRaises(TypeError, json.dumps, {json: 1})
- for v in [{}, {'other': 1}, {b('derp'): 1, 'herp': 2}]:
- for sort_keys in [False, True]:
- v0 = dict(v)
- v0[json] = 1
- v1 = dict((as_text_type(key), val) for (key, val) in v.items())
- self.assertEqual(
- json.loads(json.dumps(v0, skipkeys=True, sort_keys=sort_keys)),
- v1)
- self.assertEqual(
- json.loads(json.dumps({'': v0}, skipkeys=True, sort_keys=sort_keys)),
- {'': v1})
- self.assertEqual(
- json.loads(json.dumps([v0], skipkeys=True, sort_keys=sort_keys)),
- [v1])
-
- def test_dumps(self):
- self.assertEqual(json.dumps({}), '{}')
-
- def test_encode_truefalse(self):
- self.assertEqual(json.dumps(
- {True: False, False: True}, sort_keys=True),
- '{"false": true, "true": false}')
- self.assertEqual(
- json.dumps(
- {2: 3.0,
- 4.0: long_type(5),
- False: 1,
- long_type(6): True,
- "7": 0},
- sort_keys=True),
- '{"2": 3.0, "4.0": 5, "6": true, "7": 0, "false": 1}')
-
- def test_ordered_dict(self):
- # http://bugs.python.org/issue6105
- items = [('one', 1), ('two', 2), ('three', 3), ('four', 4), ('five', 5)]
- s = json.dumps(json.OrderedDict(items))
- self.assertEqual(
- s,
- '{"one": 1, "two": 2, "three": 3, "four": 4, "five": 5}')
-
- def test_indent_unknown_type_acceptance(self):
- """
- A test against the regression mentioned at `github issue 29`_.
-
- The indent parameter should accept any type which pretends to be
- an instance of int or long when it comes to being multiplied by
- strings, even if it is not actually an int or long, for
- backwards compatibility.
-
- .. _github issue 29:
- http://github.com/simplejson/simplejson/issue/29
- """
-
- class AwesomeInt(object):
- """An awesome reimplementation of integers"""
-
- def __init__(self, *args, **kwargs):
- if len(args) > 0:
- # [construct from literals, objects, etc.]
- # ...
-
- # Finally, if args[0] is an integer, store it
- if isinstance(args[0], int):
- self._int = args[0]
-
- # [various methods]
-
- def __mul__(self, other):
- # [various ways to multiply AwesomeInt objects]
- # ... finally, if the right-hand operand is not awesome enough,
- # try to do a normal integer multiplication
- if hasattr(self, '_int'):
- return self._int * other
- else:
- raise NotImplementedError("To do non-awesome things with"
- " this object, please construct it from an integer!")
-
- s = json.dumps([0, 1, 2], indent=AwesomeInt(3))
- self.assertEqual(s, '[\n 0,\n 1,\n 2\n]')
-
- def test_accumulator(self):
- # the C API uses an accumulator that collects after 100,000 appends
- lst = [0] * 100000
- self.assertEqual(json.loads(json.dumps(lst)), lst)