コード例 #1
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_find_comment_on_end_of_line(self):
        reader = JsonReader('something // this is a comment')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('something')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_line_comment')
        expect(result.value).to_equal('// this is a comment')
コード例 #2
0
    def test_should_find_comment_on_end_of_line(self):
        reader = JsonReader('something // this is a comment')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('something')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_line_comment')
        expect(result.value).to_equal('// this is a comment')
コード例 #3
0
    def test_should_read_json_with_multiple_properties(self):
        reader = JsonReader('{"hello": "world", value: 123.4}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"hello"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"world"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('value')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('123.4')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #4
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_read_json_with_multiple_properties(self):
        reader = JsonReader('{"hello": "world", value: 123.4}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"hello"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"world"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('value')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('123.4')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #5
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_read_empty_json_object(self):
        reader = JsonReader('{}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #6
0
    def test_should_read_empty_json_object(self):
        reader = JsonReader('{}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #7
0
    def test_should_read_empty_array(self):
        reader = JsonReader('[]')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_array')
        expect(result.value).to_equal('[')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_array')
        expect(result.value).to_equal(']')

        result = reader.read()
        expect(result).to_be_false()
コード例 #8
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_read_empty_array(self):
        reader = JsonReader('[]')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_array')
        expect(result.value).to_equal('[')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_array')
        expect(result.value).to_equal(']')

        result = reader.read()
        expect(result).to_be_false()
コード例 #9
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_find_expression_like_value_terminated_by_new_line(self):
        reader = JsonReader('abc("hello")')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('abc("hello")')
コード例 #10
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_find_expression_like_value_terminated_by_comma(self):
        reader = JsonReader('abc + 123 - xyz, abc')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('abc + 123 - xyz')
コード例 #11
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_find_in_line_comment_block(self):
        reader = JsonReader('before /* this is a\nblock comment */ after */')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('before')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('in_line_comment_block')
        expect(result.value).to_equal('/* this is a\nblock comment */')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
コード例 #12
0
    def test_should_find_in_line_comment_block(self):
        reader = JsonReader('before /* this is a\nblock comment */ after */')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('before')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('in_line_comment_block')
        expect(result.value).to_equal('/* this is a\nblock comment */')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
コード例 #13
0
    def test_should_find_comment_on_line_by_itself(self):
        reader = JsonReader('\t// this is a comment')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('new_line_comment')
        expect(result.value).to_equal('// this is a comment')
コード例 #14
0
    def test_should_find_expression_like_value_terminated_by_new_line(self):
        reader = JsonReader('abc("hello")')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('abc("hello")')
コード例 #15
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_find_comment_on_line_by_itself(self):
        reader = JsonReader('\t// this is a comment')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('new_line_comment')
        expect(result.value).to_equal('// this is a comment')
コード例 #16
0
    def test_should_find_expression_like_value_terminated_by_comma(self):
        reader = JsonReader('abc + 123 - xyz, abc')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('abc + 123 - xyz')
コード例 #17
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_read_json_with_literals(self):
        reader = JsonReader('{hello:123.4}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('hello')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('123.4')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #18
0
    def test_should_read_formatted_json(self):
        reader = JsonReader('{\n  "hello": "world"\n}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"hello"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"world"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #19
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_read_property_with_asterisk(self):
        reader = JsonReader('{"*":"asterisk"}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"*"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"asterisk"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #20
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_read_json_with_unterminated_strings(self):
        reader = JsonReader('{"hello\n:"world\n}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"hello')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"world')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #21
0
    def test_should_read_json_with_unterminated_strings(self):
        reader = JsonReader('{"hello\n:"world\n}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"hello')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"world')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #22
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_read_formatted_json(self):
        reader = JsonReader('{\n  "hello": "world"\n}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"hello"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"world"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #23
0
    def test_should_read_property_with_asterisk(self):
        reader = JsonReader('{"*":"asterisk"}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"*"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"asterisk"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #24
0
    def test_should_read_json_with_literals(self):
        reader = JsonReader('{hello:123.4}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('hello')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('123.4')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_false()
コード例 #25
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_read_basic_array(self):
        reader = JsonReader('[1, 2, 3]')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_array')
        expect(result.value).to_equal('[')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('1')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('2')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('3')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_array')
        expect(result.value).to_equal(']')

        result = reader.read()
        expect(result).to_be_false()
コード例 #26
0
    def test_should_read_basic_array(self):
        reader = JsonReader('[1, 2, 3]')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_array')
        expect(result.value).to_equal('[')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('1')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('2')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('3')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_array')
        expect(result.value).to_equal(']')

        result = reader.read()
        expect(result).to_be_false()
コード例 #27
0
ファイル: test_json_reader.py プロジェクト: socsieng/IndentX
    def test_should_read_complex_array(self):
        reader = JsonReader('[{"int":123,"str":"hello"},{"int":123,"str":"hello"}]')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_array')
        expect(result.value).to_equal('[')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"int"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('123')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"str"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"hello"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"int"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('123')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"str"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"hello"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_array')
        expect(result.value).to_equal(']')

        result = reader.read()
        expect(result).to_be_false()
コード例 #28
0
    def test_should_read_complex_array(self):
        reader = JsonReader(
            '[{"int":123,"str":"hello"},{"int":123,"str":"hello"}]')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_array')
        expect(result.value).to_equal('[')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"int"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('123')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"str"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"hello"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('begin_object')
        expect(result.value).to_equal('{')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"int"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('123')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value_separator')
        expect(result.value).to_equal(',')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property')
        expect(result.value).to_equal('"str"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('property_separator')
        expect(result.value).to_equal(':')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('value')
        expect(result.value).to_equal('"hello"')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_object')
        expect(result.value).to_equal('}')

        result = reader.read()
        expect(result).to_be_true()
        expect(result.type).to_equal('end_array')
        expect(result.value).to_equal(']')

        result = reader.read()
        expect(result).to_be_false()