File: test_relative_json_pointer.py

package info (click to toggle)
python-jsonpath 2.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,028 kB
  • sloc: python: 9,473; makefile: 6
file content (44 lines) | stat: -rw-r--r-- 1,228 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
"""Relative JSON Pointer test cases."""
import pytest

from jsonpath import JSONPointer
from jsonpath import RelativeJSONPointer
from jsonpath import RelativeJSONPointerIndexError
from jsonpath import RelativeJSONPointerSyntaxError


def test_syntax_error() -> None:
    with pytest.raises(RelativeJSONPointerSyntaxError):
        RelativeJSONPointer("foo")


def test_origin_leading_zero() -> None:
    with pytest.raises(RelativeJSONPointerSyntaxError):
        RelativeJSONPointer("01")


def test_origin_beyond_pointer() -> None:
    pointer = JSONPointer("/foo/bar/0")
    rel = RelativeJSONPointer("9/foo")
    with pytest.raises(RelativeJSONPointerIndexError):
        rel.to(pointer)


def test_equality() -> None:
    rel = RelativeJSONPointer("1/foo")
    assert rel == RelativeJSONPointer("1/foo")


def test_zero_index_offset() -> None:
    with pytest.raises(RelativeJSONPointerSyntaxError):
        RelativeJSONPointer("1-0")

    with pytest.raises(RelativeJSONPointerSyntaxError):
        RelativeJSONPointer("1+0")


def test_negative_index_offset() -> None:
    pointer = JSONPointer("/foo/1")
    rel = RelativeJSONPointer("0-2")
    with pytest.raises(RelativeJSONPointerIndexError):
        rel.to(pointer)