add TeardownHooksFailure exception

This commit is contained in:
httprunner
2018-07-27 11:41:59 +08:00
parent d593d1c801
commit bc56a7501b
5 changed files with 42 additions and 5 deletions

View File

@@ -15,6 +15,12 @@ class ValidationFailure(MyBaseFailure):
class ExtractFailure(MyBaseFailure):
pass
class SetupHooksFailure(MyBaseFailure):
pass
class TeardownHooksFailure(MyBaseFailure):
pass
""" error type exceptions
these exceptions will mark test as error

View File

@@ -153,7 +153,7 @@ class ResponseObject(object):
logger.log_error(err_msg)
raise exceptions.ExtractFailure(err_msg)
# new set response attributes
# new set response attributes in teardown_hooks
elif top_query == "attributes":
if not sub_query:
# extract response attributes
@@ -163,10 +163,10 @@ class ResponseObject(object):
return self.attributes[sub_query]
else:
# content = "attributes.new_attribute_not_exist"
err_msg = u"Failed to extract cumstom set attribute! => {}\n".format(field)
err_msg = u"Failed to extract cumstom set attribute from teardown hooks! => {}\n".format(field)
err_msg += u"response set attributes: {}\n".format(self.attributes)
logger.log_error(err_msg)
raise exceptions.ExtractFailure(err_msg)
raise exceptions.TeardownHooksFailure(err_msg)
# others
else:

View File

@@ -171,6 +171,7 @@ class Runner(object):
# teardown hooks
teardown_hooks = testcase_dict.get("teardown_hooks", [])
if teardown_hooks:
logger.log_info("start to run teardown hooks")
self.context.bind_testcase_variable("response", resp_obj)
self.do_hook_actions(teardown_hooks)