Skip to content

Commit ed68faa

Browse files
committed
Include the CTS as a submodule. Closes #32.
Skip failed test cases for now.
1 parent 6ce5495 commit ed68faa

File tree

3 files changed

+52
-12
lines changed

3 files changed

+52
-12
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "tests/cts"]
2+
path = tests/cts
3+
url = [email protected]:jsonpath-standard/jsonpath-compliance-test-suite.git

tests/cts

Submodule cts added at ca076c0
Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
"""Test Python JSONPath against the JSONPath Compliance Test Suite.
22
3-
Assumes a version of the test suite is available in the current working
4-
directory as "cts.json".
5-
6-
See https://github.com/jsonpath-standard/jsonpath-compliance-test-suite.
7-
8-
We've deliberately named this file so as to exclude it when running `pytest`
9-
or `hatch run test`. Target it specifically using `pytest tests/compliance.py`.
3+
The CTS is a submodule located in /tests/cts. After a git clone, run
4+
`git submodule update --init` from the root of the repository.
105
"""
116
import asyncio
127
import json
@@ -46,10 +41,51 @@ class Case:
4641
"name selector, double quotes, incomplete escape": "ignore",
4742
"name selector, single quotes, invalid escaped double quote": "ignore",
4843
"name selector, single quotes, incomplete escape": "ignore",
49-
"filter, non-singular query in comparison, slice": "ignore",
50-
"filter, non-singular query in comparison, all children": "ignore",
51-
"filter, non-singular query in comparison, descendants": "ignore",
52-
"filter, non-singular query in comparison, combined": "ignore",
44+
"filter, non-singular query in comparison, slice": "TODO",
45+
"filter, non-singular query in comparison, all children": "TODO",
46+
"filter, non-singular query in comparison, descendants": "TODO",
47+
"filter, non-singular query in comparison, combined": "TODO",
48+
"filter, relative non-singular query, index, equal": "TODO",
49+
"filter, relative non-singular query, index, not equal": "TODO",
50+
"filter, relative non-singular query, index, less-or-equal": "TODO",
51+
"filter, relative non-singular query, name, equal": "TODO",
52+
"filter, relative non-singular query, name, not equal": "TODO",
53+
"filter, relative non-singular query, name, less-or-equal": "TODO",
54+
"filter, relative non-singular query, combined, equal": "TODO",
55+
"filter, relative non-singular query, combined, not equal": "TODO",
56+
"filter, relative non-singular query, combined, less-or-equal": "TODO",
57+
"filter, relative non-singular query, wildcard, equal": "TODO",
58+
"filter, relative non-singular query, wildcard, not equal": "TODO",
59+
"filter, relative non-singular query, wildcard, less-or-equal": "TODO",
60+
"filter, relative non-singular query, slice, equal": "TODO",
61+
"filter, relative non-singular query, slice, not equal": "TODO",
62+
"filter, relative non-singular query, slice, less-or-equal": "TODO",
63+
"filter, absolute non-singular query, index, equal": "TODO",
64+
"filter, absolute non-singular query, index, not equal": "TODO",
65+
"filter, absolute non-singular query, index, less-or-equal": "TODO",
66+
"filter, absolute non-singular query, name, equal": "TODO",
67+
"filter, absolute non-singular query, name, not equal": "TODO",
68+
"filter, absolute non-singular query, name, less-or-equal": "TODO",
69+
"filter, absolute non-singular query, combined, equal": "TODO",
70+
"filter, absolute non-singular query, combined, not equal": "TODO",
71+
"filter, absolute non-singular query, combined, less-or-equal": "TODO",
72+
"filter, absolute non-singular query, wildcard, equal": "TODO",
73+
"filter, absolute non-singular query, wildcard, not equal": "TODO",
74+
"filter, absolute non-singular query, wildcard, less-or-equal": "TODO",
75+
"filter, absolute non-singular query, slice, equal": "TODO",
76+
"filter, absolute non-singular query, slice, not equal": "TODO",
77+
"filter, absolute non-singular query, slice, less-or-equal": "TODO",
78+
"filter, multiple selectors": "TODO",
79+
"filter, multiple selectors, comparison": "TODO",
80+
"filter, multiple selectors, overlapping": "TODO",
81+
"filter, multiple selectors, filter and index": "TODO",
82+
"filter, multiple selectors, filter and wildcard": "TODO",
83+
"filter, multiple selectors, filter and slice": "TODO",
84+
"filter, multiple selectors, comparison filter, index and slice": "TODO",
85+
"filter, equals number, exponent": "TODO",
86+
"filter, equals number, positive exponent": "TODO",
87+
"filter, equals number, negative exponent": "TODO",
88+
"filter, equals number, decimal fraction, no fractional digit": "TODO",
5389
"functions, length, result must be compared": "ignore",
5490
"functions, count, result must be compared": "ignore",
5591
"functions, match, result cannot be compared": "ignore",
@@ -67,7 +103,7 @@ class Case:
67103

68104

69105
def cases() -> List[Case]:
70-
with open("cts.json", encoding="utf8") as fd:
106+
with open("tests/cts/cts.json", encoding="utf8") as fd:
71107
data = json.load(fd)
72108
return [Case(**case) for case in data["tests"]]
73109

0 commit comments

Comments
 (0)