1616import pytest
1717
1818from jsonpath_rfc9535 import JSONPathEnvironment
19+ from jsonpath_rfc9535 import JSONPathNodeList
1920from jsonpath_rfc9535 import JSONValue
2021
2122
@@ -25,7 +26,9 @@ class Case:
2526 selector : str
2627 document : JSONValue = None
2728 result : Any = None
29+ result_paths : Optional [List [Any ]] = None
2830 results : Optional [List [Any ]] = None
31+ results_paths : Optional [List [Any ]] = None
2932 invalid_selector : Optional [bool ] = None
3033 tags : List [str ] = field (default_factory = list )
3134
@@ -52,12 +55,15 @@ class MockEnv(JSONPathEnvironment):
5255def test_nondeterminism_valid_cases (case : Case ) -> None :
5356 assert case .document is not None
5457 env = MockEnv ()
55- rv = env .find (case .selector , case .document ). values ( )
58+ nodes = JSONPathNodeList ( env .find (case .selector , case .document ))
5659
5760 if case .results is not None :
58- assert rv in case .results
61+ assert isinstance (case .results_paths , list )
62+ assert nodes .values () in case .results
63+ assert nodes .paths () in case .results_paths
5964 else :
60- assert rv == case .result
65+ assert nodes .values () == case .result
66+ assert nodes .paths () == case .result_paths
6167
6268
6369@pytest .mark .parametrize (
0 commit comments