From 7dec77ffc339eb5cc862cfaf006aff2a2eb3560f Mon Sep 17 00:00:00 2001 From: debugtalk Date: Fri, 23 Feb 2018 20:24:32 +0800 Subject: [PATCH] bugfix #100: Null value can only be compared with comparator: eq/equals/== --- httprunner/context.py | 7 ++++--- httprunner/testcase.py | 4 +++- httprunner/utils.py | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/httprunner/context.py b/httprunner/context.py index 1b46b3e2..1ececc13 100644 --- a/httprunner/context.py +++ b/httprunner/context.py @@ -218,10 +218,11 @@ class Context(object): check_value = validator_dict["check_value"] expect_value = validator_dict["expect"] - try: - if check_value is None or expect_value is None: - assert comparator in ["is", "eq", "equals", "=="] + if (check_value is None or expect_value is None) \ + and comparator not in ["is", "eq", "equals", "=="]: + raise exception.ParamsError("Null value can only be compared with comparator: eq/equals/==") + try: validate_func(validator_dict["check_value"], validator_dict["expect"]) except (AssertionError, TypeError): err_msg = "\n" + "\n".join([ diff --git a/httprunner/testcase.py b/httprunner/testcase.py index 5cfcd22e..b218ebca 100644 --- a/httprunner/testcase.py +++ b/httprunner/testcase.py @@ -802,6 +802,8 @@ class TestcaseParser(object): "body": {"name": "user", "password": "123456"} } """ + if content is None: + return None if isinstance(content, (list, tuple)): return [ @@ -822,7 +824,7 @@ class TestcaseParser(object): return content # content is in string format here - content = "" if content is None else content.strip() + content = content.strip() # replace functions with evaluated value # Notice: _eval_content_functions must be called before _eval_content_variables diff --git a/httprunner/utils.py b/httprunner/utils.py index ae079935..285afdd7 100644 --- a/httprunner/utils.py +++ b/httprunner/utils.py @@ -119,7 +119,7 @@ def query_json(json_content, query, delimiter='.'): def get_uniform_comparator(comparator): """ convert comparator alias to uniform name """ - if comparator in ["eq", "equals", "=="]: + if comparator in ["eq", "equals", "==", "is"]: return "equals" elif comparator in ["lt", "less_than"]: return "less_than"