From 6c7f12dd1b8fd7514d07f05f48e29266685c5ee9 Mon Sep 17 00:00:00 2001 From: t-bug Date: Fri, 6 Dec 2019 10:36:28 +0800 Subject: [PATCH] fix: several hooks in the test will be rearranged in the alphabetical order when parsing yaml(json) which will cause the test to be failed. fix: several hooks in the test will be rearranged in the alphabetical order when parsing yaml(json) which may cause the test to be failed. --- httprunner/parser.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/httprunner/parser.py b/httprunner/parser.py index 29b0a666..1b6b4d17 100644 --- a/httprunner/parser.py +++ b/httprunner/parser.py @@ -815,13 +815,17 @@ def _extend_with_api(test_dict, api_def_dict): # merge & override setup_hooks def_setup_hooks = api_def_dict.pop("setup_hooks", []) ref_setup_hooks = test_dict.get("setup_hooks", []) - extended_setup_hooks = list(set(def_setup_hooks + ref_setup_hooks)) + extended_setup_hooks_tmp = def_setup_hooks + ref_setup_hooks + extended_setup_hooks = list(set(extended_setup_hooks_tmp)) + extended_setup_hooks.sort(key=extended_setup_hooks_tmp.index) if extended_setup_hooks: test_dict["setup_hooks"] = extended_setup_hooks # merge & override teardown_hooks def_teardown_hooks = api_def_dict.pop("teardown_hooks", []) ref_teardown_hooks = test_dict.get("teardown_hooks", []) - extended_teardown_hooks = list(set(def_teardown_hooks + ref_teardown_hooks)) + extended_teardown_hooks_tmp = def_teardown_hooks + ref_teardown_hooks + extended_teardown_hooks = list(set(extended_teardown_hooks_tmp)) + extended_teardown_hooks.sort(key=extended_teardown_hooks_tmp.index) if extended_teardown_hooks: test_dict["teardown_hooks"] = extended_teardown_hooks