From 3ebf527d9a6990c4a2050fdf0ed949effe05a72b Mon Sep 17 00:00:00 2001 From: debugtalk Date: Tue, 25 Jun 2019 00:08:42 +0800 Subject: [PATCH] fix: exception when teststep name reference former extracted variable --- CHANGELOG.md | 1 + httprunner/api.py | 10 +++++++--- httprunner/parser.py | 7 +------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 582d216e..6b0f541c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ **Bugfixes** - add wheel in dev packages +- fix exception when teststep name reference former extracted variable ## 2.1.3 (2019-04-24) diff --git a/httprunner/api.py b/httprunner/api.py index 8dc2b7d6..a2eca860 100644 --- a/httprunner/api.py +++ b/httprunner/api.py @@ -67,9 +67,13 @@ class HttpRunner(object): variables = test_dict.get("variables", {}) if isinstance(test.__doc__, parser.LazyString): - parsed_variables = parser.parse_variables_mapping(variables, ignore=True) - test.__doc__ = parser.parse_lazy_data( - test.__doc__, parsed_variables) + try: + parsed_variables = parser.parse_variables_mapping(variables) + test.__doc__ = parser.parse_lazy_data( + test.__doc__, parsed_variables + ) + except exceptions.VariableNotFound: + test.__doc__ = str(test.__doc__) return test diff --git a/httprunner/parser.py b/httprunner/parser.py index f836fe56..a1e8a4f7 100644 --- a/httprunner/parser.py +++ b/httprunner/parser.py @@ -675,7 +675,7 @@ def extract_variables(content): return set() -def parse_variables_mapping(variables_mapping, ignore=False): +def parse_variables_mapping(variables_mapping): """ eval each prepared variable and function in variables_mapping. Args: @@ -689,8 +689,6 @@ def parse_variables_mapping(variables_mapping, ignore=False): "c": {"key": LazyString($b)}, "d": [LazyString($a), 3] } - ignore (bool): If set True, VariableNotFound will be ignored. - This is used when initializing tests. Returns: dict: parsed variables_mapping should not contain any variable or function. @@ -733,9 +731,6 @@ def parse_variables_mapping(variables_mapping, ignore=False): # variables_mapping = {"token": LazyString($token)} # var_name = "key" # variables_mapping = {"key": [LazyString($key), 2]} - if ignore: - parsed_variables_mapping[var_name] = value - continue raise exceptions.VariableNotFound(var_name) if variables: