def test_tuple_array_dump(self): t = (1, 2, 3) expect = json.dumpsJSON(list(t)) # Default is True sio = StringIO() json.dumpJSON(t, sio) self.assertEqual(expect, sio.getvalue()) sio = StringIO() json.dumpJSON(t, sio, tuple_as_array=True) self.assertEqual(expect, sio.getvalue()) self.assertRaises(TypeError, json.dumpJSON, t, StringIO(), tuple_as_array=False) # Ensure that the "default" does not get called sio = StringIO() json.dumpJSON(t, sio, default=repr) self.assertEqual(expect, sio.getvalue()) sio = StringIO() json.dumpJSON(t, sio, tuple_as_array=True, default=repr) self.assertEqual(expect, sio.getvalue()) # Ensure that the "default" gets called sio = StringIO() json.dumpJSON(t, sio, tuple_as_array=False, default=repr) self.assertEqual(json.dumpsJSON(repr(t)), sio.getvalue())
def check(indent, expected): d1 = json.dumpsJSON(h, indent=indent) self.assertEqual(d1, expected) sio = StringIO() json.dumpJSON(h, sio, indent=indent) self.assertEqual(sio.getvalue(), expected)
def gen_json(obj, outfile, format): if format == 'json': hjson.dumpJSON(obj, outfile, ensure_ascii=False, use_decimal=True, indent=' ', for_json=True) elif format == 'compact': hjson.dumpJSON(obj, outfile, ensure_ascii=False, for_json=True, use_decimal=True, separators=(',', ':')) elif format == 'hjson': hjson.dump(obj, outfile, ensure_ascii=False, for_json=True, use_decimal=True) else: raise ValueError('Invalid JSON format ' + format) return 0
def test_tuple_array_dump(self): t = (1, 2, 3) expect = json.dumpsJSON(list(t)) # Default is True sio = StringIO() json.dumpJSON(t, sio) self.assertEqual(expect, sio.getvalue()) sio = StringIO() json.dumpJSON(t, sio, tuple_as_array=True) self.assertEqual(expect, sio.getvalue()) self.assertRaises(TypeError, json.dumpJSON, t, StringIO(), tuple_as_array=False) # Ensure that the "default" does not get called sio = StringIO() json.dumpJSON(t, sio, default=repr) self.assertEqual(expect, sio.getvalue()) sio = StringIO() json.dumpJSON(t, sio, tuple_as_array=True, default=repr) self.assertEqual(expect, sio.getvalue()) # Ensure that the "default" gets called sio = StringIO() json.dumpJSON(t, sio, tuple_as_array=False, default=repr) self.assertEqual( json.dumpsJSON(repr(t)), sio.getvalue())
def test_sort_keys(self): # https://github.com/simplejson/simplejson/issues/106 for num_keys in range(2, 32): p = {str(x): x for x in range(num_keys)} sio = StringIO() json.dumpJSON(p, sio, sort_keys=True) self.assertEqual(sio.getvalue(), json.dumpsJSON(p, sort_keys=True)) self.assertEqual(json.loads(sio.getvalue()), p)
def test_sort_keys(self): # https://github.com/simplejson/simplejson/issues/106 for num_keys in range(2, 32): p = dict((str(x), x) for x in range(num_keys)) sio = StringIO() json.dumpJSON(p, sio, sort_keys=True) self.assertEqual(sio.getvalue(), json.dumpsJSON(p, sort_keys=True)) self.assertEqual(json.loads(sio.getvalue()), p)
def test_asdict_not_callable_dump(self): for f in CONSTRUCTORS: self.assertRaises(TypeError, json.dumpJSON, f(DeadDuck()), StringIO(), namedtuple_as_object=True) sio = StringIO() json.dumpJSON(f(DeadDict()), sio, namedtuple_as_object=True) self.assertEqual( json.dumpsJSON(f({})), sio.getvalue())
def test_asdict_not_callable_dump(self): for f in CONSTRUCTORS: self.assertRaises(TypeError, json.dumpJSON, f(DeadDuck()), StringIO(), namedtuple_as_object=True) sio = StringIO() json.dumpJSON(f(DeadDict()), sio, namedtuple_as_object=True) self.assertEqual(json.dumpsJSON(f({})), sio.getvalue())
def test_namedtuple_dump_false(self): for v in [Value(1), Point(1, 2)]: l = list(v) sio = StringIO() json.dumpJSON(v, sio, namedtuple_as_object=False) self.assertEqual( l, json.loads(sio.getvalue())) self.assertRaises(TypeError, json.dumpJSON, v, StringIO(), tuple_as_array=False, namedtuple_as_object=False)
def main(): fmt = "hjson" args = [] for arg in sys.argv[1:]: if arg == "-h" or arg == "--help": showerr(HELP) return elif arg == "-j": fmt = "json" elif arg == "-c": fmt = "compact" elif arg == "-V" or arg == "--version": showerr("Hjson " + hjson.__version__) return elif arg[0] == "-": showerr(HELP) raise SystemExit("unknown option " + arg) else: args.append(arg) outfile = sys.stdout if len(args) == 0: infile = sys.stdin elif len(args) == 1: infile = open(args[0], "r") else: showerr(HELP) raise SystemExit("unknown options") with infile: try: obj = hjson.load(infile, use_decimal=True) except ValueError: raise SystemExit(sys.exc_info()[1]) with outfile: if fmt == "json": hjson.dumpJSON(obj, outfile, ensure_ascii=False, use_decimal=True, indent=" ") elif fmt == "compact": hjson.dumpJSON( obj, outfile, ensure_ascii=False, use_decimal=True, separators=(",", ":"), ) else: hjson.dump(obj, outfile, ensure_ascii=False, use_decimal=True) outfile.write("\n")
def test_namedtuple_dump_false(self): for v in [Value(1), Point(1, 2)]: l = list(v) sio = StringIO() json.dumpJSON(v, sio, namedtuple_as_object=False) self.assertEqual(l, json.loads(sio.getvalue())) self.assertRaises(TypeError, json.dumpJSON, v, StringIO(), tuple_as_array=False, namedtuple_as_object=False)
def test_decimal_defaults(self): d = Decimal('1.1') # use_decimal=True is the default self.assertRaises(TypeError, json.dumpsJSON, d, use_decimal=False) self.assertEqual('1.1', json.dumpsJSON(d)) self.assertEqual('1.1', json.dumpsJSON(d, use_decimal=True)) self.assertRaises(TypeError, json.dumpJSON, d, StringIO(), use_decimal=False) sio = StringIO() json.dumpJSON(d, sio) self.assertEqual('1.1', sio.getvalue()) sio = StringIO() json.dumpJSON(d, sio, use_decimal=True) self.assertEqual('1.1', sio.getvalue())
def main(): format = 'hjson' args = [] for arg in sys.argv[1:]: if arg == '-h' or arg == '--help': showerr(HELP) return elif arg == '-j': format = 'json' elif arg == '-c': format = 'compact' elif arg == '-V' or arg == '--version': showerr('Hjson ' + pkg_resources.require("Hjson")[0].version) return elif arg[0] == '-': showerr(HELP) raise SystemExit('unknown option ' + arg) else: args.append(arg) outfile = sys.stdout if len(args) == 0: infile = sys.stdin elif len(args) == 1: infile = open(args[0], 'r') else: showerr(HELP) raise SystemExit('unknown options') with infile: try: obj = hjson.load(infile, use_decimal=True) except ValueError: raise SystemExit(sys.exc_info()[1]) with outfile: if format == 'json': hjson.dumpJSON(obj, outfile, use_decimal=True, indent=' ') elif format == 'compact': hjson.dumpJSON(obj, outfile, use_decimal=True, separators=(',', ':')) else: hjson.dump(obj, outfile, use_decimal=True) outfile.write('\n')
def main(): todo = "-h" args = [] for arg in sys.argv[1:]: if arg[0] == '-': todo = arg else: args.append(arg) if len(args) == 0: infile = sys.stdin outfile = sys.stdout elif len(args) == 1: infile = open(args[0], 'r') outfile = sys.stdout elif len(args) == 2: infile = open(args[0], 'r') outfile = open(args[1], 'w') else: raise SystemExit(sys.argv[0] + " {-h|-j|-c} [infile [outfile]]") with infile: try: obj = hjson.load(infile, use_decimal=True) except ValueError: raise SystemExit(sys.exc_info()[1]) with outfile: if todo == '-j': hjson.dumpJSON(obj, outfile, use_decimal=True, indent=" ") elif todo == '-c': hjson.dumpJSON(obj, outfile, use_decimal=True, separators=(',', ':')) else: hjson.dump(obj, outfile, use_decimal=True) outfile.write('\n')
def test_namedtuple_dump(self): for v in [Value(1), Point(1, 2), DuckValue(1), DuckPoint(1, 2)]: d = v._asdict() sio = StringIO() json.dumpJSON(v, sio) self.assertEqual(d, json.loads(sio.getvalue())) sio = StringIO() json.dumpJSON(v, sio, namedtuple_as_object=True) self.assertEqual(d, json.loads(sio.getvalue())) sio = StringIO() json.dumpJSON(v, sio, tuple_as_array=False) self.assertEqual(d, json.loads(sio.getvalue())) sio = StringIO() json.dumpJSON(v, sio, namedtuple_as_object=True, tuple_as_array=False) self.assertEqual(d, json.loads(sio.getvalue()))
def test_namedtuple_dump(self): for v in [Value(1), Point(1, 2), DuckValue(1), DuckPoint(1, 2)]: d = v._asdict() sio = StringIO() json.dumpJSON(v, sio) self.assertEqual(d, json.loads(sio.getvalue())) sio = StringIO() json.dumpJSON(v, sio, namedtuple_as_object=True) self.assertEqual( d, json.loads(sio.getvalue())) sio = StringIO() json.dumpJSON(v, sio, tuple_as_array=False) self.assertEqual(d, json.loads(sio.getvalue())) sio = StringIO() json.dumpJSON(v, sio, namedtuple_as_object=True, tuple_as_array=False) self.assertEqual( d, json.loads(sio.getvalue()))
def dumps(self, obj, **kw): sio = StringIO() json.dumpJSON(obj, sio, **kw) res = json.dumpsJSON(obj, **kw) self.assertEqual(res, sio.getvalue()) return res
def test_dump(self): sio = StringIO() json.dumpJSON({}, sio) self.assertEqual(sio.getvalue(), '{}')
def test_dump(self): sio = StringIO() json.dumpJSON({}, sio) self.assertEqual(sio.getvalue(), "{}")