예제 #1
0
def test_escape_sequences():
    json_string = r"""{
    "foo": "foo\nbar\nbaz",
    "bar": "foo\\bar\\baz",
    "baz": "foo\tbar\tbaz"}"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #2
0
def test_number_literals_inf_nan():
    json_string = """{
    "positiveInfinity": Infinity,
    "negativeInfinity": -Infinity,
    "notANumber": NaN,}"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #3
0
def test_hexadecimal_load():
    json_string = """
    {
    positiveHex: 0xdecaf,
    negativeHex: -0xC0FFEE,}"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #4
0
def test_number_literals():
    json_string = """{
    "integer": 123,
    "withFractionPart": 123.456,
    "onlyFractionPart": .456,
    "withExponent": 123e-2}"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #5
0
def test_array_with_multiline_comment():
    json_string = """[ /* foo bar
    */ "foo", "bar"
    ]"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #6
0
def test_array_load_with_line_comment():
    json_string = """[ // line comment
    "foo", "bar"
    ]"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #7
0
def test_object_with_multiline_comment():
    json_string = """{ /* foo bar
    */ "foo": "bar" // Foobar
    }"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #8
0
def test_modelize_nan():
    obj = math.nan
    assert loads(dumps(modelize(obj), dumper=ModelDumper())) is obj
예제 #9
0
def test_line_continuations():
    json_string = r"""'Hello \
world!'"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #10
0
def test_double_quote_with_escape_double_quote():
    json_string = r"""{"fo\"o": "bar"}"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #11
0
def test_load_empty_object_wtih_whitespace():
    json_string = "[   ]"
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #12
0
def test_load_empty_array_with_whitespace():
    json_string = "{   }"
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #13
0
def test_empty_array():
    json_string = "[]"
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #14
0
def test_empty_object():
    json_string = "{}"
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #15
0
def test_nested_object():
    json_string = """{"foo": {"bacon": "eggs"}}"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #16
0
def test_load_empty_object_with_comments():
    json_string = "{ // foo \n}"
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #17
0
def test_single_quote_with_escape_single_quote():
    json_string = r"""{'fo\'o': 'bar'}"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #18
0
def test_load_empty_array_with_comments():
    json_string = "[ // foo \n]"
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #19
0
def test_escape_sequence_strings():
    json_string = r"""'\A\C\/\D\C'"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #20
0
def test_round_trip_model_load_dump(json_string):
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #21
0
def test_modelize_objects(obj):
    assert loads(dumps(modelize(obj), dumper=ModelDumper())) == obj
예제 #22
0
def test_object_load_with_line_comment():
    json_string = """{ // line comment
    "foo": "bar"
    }"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string
예제 #23
0
def test_modelize_double_quote_string():
    s = "'"
    assert loads(dumps(modelize(s), dumper=ModelDumper())) == s
예제 #24
0
def test_line_continuations_alternate_terminators(terminator):
    json_string = f"""'Hello \\{terminator}world!'"""
    assert dumps(loads(json_string, loader=ModelLoader()),
                 dumper=ModelDumper()) == json_string