From 5cfa80991a228df8ac2c5af4a4212794a583b492 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Wed, 27 May 2020 19:42:21 +0800 Subject: [PATCH] fix: validate field with variable or function --- httprunner/ext/make/__init__.py | 8 ++------ httprunner/response.py | 9 ++++++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/httprunner/ext/make/__init__.py b/httprunner/ext/make/__init__.py index 16a6953a..ed7f9f68 100644 --- a/httprunner/ext/make/__init__.py +++ b/httprunner/ext/make/__init__.py @@ -184,12 +184,8 @@ def __make_testcase(testcase: Dict, dir_path: Text = None) -> NoReturn: def __make_testsuite(testsuite: Dict) -> NoReturn: """convert valid testsuite dict to pytest folder with testcases""" - try: - # validate testcase format - load_testsuite(testsuite) - except exceptions.TestSuiteFormatError as ex: - logger.error(f"TestSuiteFormatError: {ex}") - raise + # validate testsuite format + load_testsuite(testsuite) config = testsuite["config"] testsuite_path = config["path"] diff --git a/httprunner/response.py b/httprunner/response.py index 022d5fe9..4c709e94 100644 --- a/httprunner/response.py +++ b/httprunner/response.py @@ -164,9 +164,12 @@ class ResponseObject(object): # check item check_item = u_validator["check"] - # TODO: validate variable or function - # check_item = parse_data(check_item, variables_mapping, functions_mapping) - check_value = jmespath.search(check_item, self.resp_obj_meta) + if "$" in check_item: + # check_item is variable or function + check_value = parse_data(check_item, variables_mapping, functions_mapping) + else: + check_value = jmespath.search(check_item, self.resp_obj_meta) + check_value = parse_string_value(check_value) # comparator