-
-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathtest_relative_json_pointer.py
More file actions
44 lines (30 loc) · 1.2 KB
/
test_relative_json_pointer.py
File metadata and controls
44 lines (30 loc) · 1.2 KB
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)