Beispiel #1
0
def test_object_unterminated_after_value():
    with pytest.raises(ParseError) as exc:
        apistar.parse('{"abc": "def"', encoding='json')

    assert exc.value.messages == [
        ErrorMessage(
            text="Expecting ',' delimiter.",
            code='parse_error',
            position=Position(line_no=1, column_no=14, index=13)
        )
    ]
Beispiel #2
0
def test_object_invalid_property_name():
    with pytest.raises(ParseError) as exc:
        apistar.parse('{"abc": "def", 1', encoding='json')

    assert exc.value.messages == [
        ErrorMessage(
            text="Expecting property name enclosed in double quotes.",
            code='parse_error',
            position=Position(line_no=1, column_no=16, index=15)
        )
    ]
Beispiel #3
0
def test_object_missing_property_name():
    with pytest.raises(ParseError) as exc:
        apistar.parse('{', encoding='json')

    assert exc.value.messages == [
        ErrorMessage(
            text='Expecting property name enclosed in double quotes.',
            code='parse_error',
            position=Position(line_no=1, column_no=2, index=1)
        )
    ]
Beispiel #4
0
def test_object_missing_comma_delimiter():
    with pytest.raises(ParseError) as exc:
        apistar.parse('{"abc": "def" 1', encoding='json')

    assert exc.value.messages == [
        ErrorMessage(
            text="Expecting ',' delimiter.",
            code='parse_error',
            position=Position(line_no=1, column_no=15, index=14)
        )
    ]
Beispiel #5
0
def test_invalid_property():
    with pytest.raises(ValidationError) as exc:
        apistar.parse('{"a": "abc"}', encoding="json", validator=VALIDATOR)

    assert exc.value.messages == [
        ErrorMessage(
            text='Must be a number.',
            code='type',
            index=['a'],
            position=Position(line_no=1, column_no=7, index=6))
    ]
Beispiel #6
0
def test_empty_string():
    with pytest.raises(ParseError) as exc:
        apistar.parse(b'', encoding='json')

    assert exc.value.messages == [
        ErrorMessage(
            text='No content.',
            code='parse_error',
            position=Position(line_no=1, column_no=1, index=0)
        )
    ]
Beispiel #7
0
def test_missing_required_property():
    with pytest.raises(ValidationError) as exc:
        apistar.parse('{}', encoding="json", validator=VALIDATOR)

    assert exc.value.messages == [
        ErrorMessage(
            text='The "a" field is required.',
            code='required',
            index=['a'],
            position=Position(line_no=1, column_no=1, index=0))
    ]
Beispiel #8
0
def test_unterminated_string():
    with pytest.raises(ParseError) as exc:
        apistar.parse('"ab', encoding='json')

    assert exc.value.messages == [
        ErrorMessage(
            text="Unterminated string.",
            code='parse_error',
            position=Position(line_no=1, column_no=1, index=0)
        )
    ]
Beispiel #9
0
def test_invalid_token():
    with pytest.raises(ParseError) as exc:
        apistar.parse('-', encoding='json')

    assert exc.value.messages == [
        ErrorMessage(
            text="Expecting value.",
            code='parse_error',
            position=Position(line_no=1, column_no=1, index=0)
        )
    ]
Beispiel #10
0
def test_invalid_top_level_item():
    with pytest.raises(ValidationError) as exc:
        apistar.parse('123', encoding="json", validator=VALIDATOR)

    assert exc.value.messages == [
        ErrorMessage(
            text='Must be an object.',
            code='type',
            index=None,
            position=Position(line_no=1, column_no=1, index=0)
        )
    ]
Beispiel #11
0
def test_valid_json():
    apistar.parse('{"abc": "def"}', encoding='json')
Beispiel #12
0
def test_invalid_base_format():
    with pytest.raises(ValueError):
        apistar.parse('{"abc": "def"}', encoding='xyz')