コード例 #1
0
    def test_shortcut_functions(self):
        jsonpath.auto_id_field = None
        parse_result = parser.parse(self.string, debug=True).find(self.data)
        match_result = parser.match(self.string, self.data, debug=True)
        match1_result = parser.match1(self.string, self.data, debug=True)

        self.assertEqual(match_result, [r.value for r in parse_result])
        if match_result:
            self.assertEqual(match_result[0], match1_result)
        else:
            self.assertIsNone(match1_result)
コード例 #2
0
 def test_fields_value(self):
     jsonpath.auto_id_field = None
     result = parser.parse(self.string, debug=True).find(self.data)
     if isinstance(self.target, list):
         self.assertEqual(self.target, [r.value for r in result])
     elif isinstance(self.target, set):
         self.assertEqual(self.target, set([r.value for r in result]))
     elif isinstance(self.target, (int, float)):
         self.assertEqual(self.target, result[0].value)
     else:
         self.assertEqual(self.target, result[0].value)
コード例 #3
0
 def test_fields_value(self):
     jsonpath.auto_id_field = None
     result = parser.parse(self.string, debug=True).find(self.data)
     if isinstance(self.target, list):
         self.assertEqual(self.target, [r.value for r in result])
     elif isinstance(self.target, set):
         self.assertEqual(self.target, set([r.value for r in result]))
     elif isinstance(self.target, (int, float)):
         self.assertEqual(self.target, result[0].value)
     else:
         self.assertEqual(self.target, result.value)
コード例 #4
0
    def check_paths(self, test_cases):
        # Note that just manually building an AST would avoid this dep and
        # isolate the tests, but that would suck a bit
        # Also, we coerce iterables, etc, into the desired target type

        for string, data, target in test_cases:
            print('parse("%s").find(%s).paths =?= %s' % (string, data, target))
            result = parser.parse(string).find(data)
            if isinstance(target, list):
                assert [str(r.full_path) for r in result] == target
            elif isinstance(target, set):
                assert set([str(r.full_path) for r in result]) == target
            else:
                assert str(result.path) == target
コード例 #5
0
    def check_paths(self, test_cases):
        # Note that just manually building an AST would avoid this dep and
        # isolate the tests, but that would suck a bit
        # Also, we coerce iterables, etc, into the desired target type

        for string, data, target in test_cases:
            print('parse("%s").find(%s).paths =?= %s' % (string, data, target))
            result = parser.parse(string).find(data)
            if isinstance(target, list):
                assert [str(r.full_path) for r in result] == target
            elif isinstance(target, set):
                assert set([str(r.full_path) for r in result]) == target
            else:
                assert str(result.path) == target
コード例 #6
0
 def __init__(self, *args):
     path = args[0]
     self.jsonpath = jsonpath_parser.parse(path)
     self._return_multi = False
     if len(args) > 1 and args[1]:
         self._return_multi = args[1]
コード例 #7
0
ファイル: procedure.py プロジェクト: nevor1530/crawler
 def __init__(self, *args):
     path = args[0]
     self.jsonpath = jsonpath_parser.parse(path)
     self._return_multi = False
     if len(args) > 1 and args[1]:
         self._return_multi = args[1]