def test_calling_registered_hooks_with_arguments(self): """ Test calling registered hooks with arguments """ hookregistry = HookRegistry() data = threading.local() data.hooked_a_feature = None data.hooked_b_step = None data.hooked_c_feature = None def hooked_a(feature): data.hooked_a_feature = feature def hooked_b(step): data.hooked_b_step = step def hooked_c(feature): data.hooked_c_feature = feature before.each_feature(hooked_a) after.each_step(hooked_b) before.each_feature(hooked_c) hookregistry.call("before", "each_feature", "this is a feature") data.hooked_a_feature = "this is a feature" data.hooked_b_step = None data.hooked_c_feature = "this is a feature" hookregistry.call("after", "each_step", "this is a step") data.hooked_a_feature = "this is a feature" data.hooked_b_step = "this is a step" data.hooked_c_feature = "this is a feature"
def __init__(self): before.each_feature(self.time_recorder_before_each_feature) before.each_scenario(self.time_recorder_before_each_scenario) before.each_step(self.time_recorder_before_each_step) after.each_feature(self.time_recorder_after_each_feature) after.each_scenario(self.time_recorder_after_each_scenario) after.each_step(self.time_recorder_after_each_step)
def test_calling_registered_hooks(self): """ Test calling registered hooks """ hookregistry = HookRegistry() data = threading.local() data.called_hooked_a = False data.called_hooked_b = False data.called_hooked_c = False def hooked_a(): data.called_hooked_a = True def hooked_b(): data.called_hooked_b = True def hooked_c(): data.called_hooked_c = True before.each_feature(hooked_a) after.each_step(hooked_b) before.each_feature(hooked_c) hookregistry.call("before", "each_feature") data.called_hooked_a.should.be.true data.called_hooked_b.should.be.false data.called_hooked_c.should.be.true hookregistry.call("after", "each_step") data.called_hooked_a.should.be.true data.called_hooked_b.should.be.true data.called_hooked_c.should.be.true
def __init__(self): before.each_feature(self.dot_formatter_before_each_feature) after.each_feature(lambda *args, **kwargs: sys.stdout.write("\n")) after.each_scenario(self.dot_formatter_after_each_scenario) after.each_step(self.dot_formatter_after_each_step) after.all(self.dot_formatter_failure_summary) self._failed_steps = []
def __init__(self): before.all(self.syslog_writer_before_all) before.each_feature(self.syslog_writer_before_each_feature) before.each_scenario(self.syslog_writer_before_each_scenario) before.each_step(self.syslog_writer_before_each_step) after.all(self.syslog_writer_after_all) after.each_feature(self.syslog_writer_after_each_feature) after.each_scenario(self.syslog_writer_after_each_scenario) after.each_step(self.syslog_writer_after_each_step)
def __init__(self): before.each_feature(self.console_writer_before_each_feature) before.each_scenario(self.console_writer_before_each_scenario) before.each_step(self.console_writer_before_each_step) after.each_feature(self.console_writer_after_each_feature) after.each_scenario(self.console_writer_after_each_scenario) after.each_step(self.console_writer_after_each_step) self.last_precondition = None
def __init__(self): self.failed_steps = [] before.each_feature(is_formatter=True)(self.write_feature_header) after.each_feature(is_formatter=True)( lambda *args, **kwargs: print("", flush=True) ) after.each_scenario(is_formatter=True)(self.write_dot_for_scenario) after.each_step(is_formatter=True)(self.remember_failed_steps) after.all(is_formatter=True)(self.write_endreport)
def __init__(self): before.each_feature(self.console_writer_before_each_feature) before.each_scenario(self.console_writer_before_each_scenario) before.each_step(self.console_writer_before_each_step) after.each_feature(self.console_writer_after_each_feature) after.each_scenario(self.console_writer_after_each_scenario) after.each_step(self.console_writer_after_each_step) self.last_precondition = None self.last_background = None self._placeholder_regex = re.compile(r"(<[\w-]+>)", flags=re.UNICODE)
def __init__(self): before.each_feature(self.console_writer_before_each_feature) before.each_scenario(self.console_writer_before_each_scenario) before.each_step(self.console_writer_before_each_step) after.each_feature(self.console_writer_after_each_feature) after.each_scenario(self.console_writer_after_each_scenario) after.each_step(self.console_writer_after_each_step) self.last_precondition = None self.last_background = None self._placeholder_regex = re.compile(r'(<[\w-]+>)', flags=re.UNICODE)
def __init__(self): before.each_feature(is_formatter=True)(write_feature_header) after.each_feature(is_formatter=True)(write_feature_footer) before.each_rule(is_formatter=True)(write_rule_header) before.each_scenario(is_formatter=True)(write_scenario_header) after.each_scenario(is_formatter=True)(write_scenario_footer) before.each_step(is_formatter=True)(write_step_running) after.each_step(is_formatter=True)(write_step_result) after.all(is_formatter=True)(write_summary)
def __init__(self): # import syslog only if the extension got loaded # but not if the module got loaded. import syslog before.all(self.syslog_writer_before_all) before.each_feature(self.syslog_writer_before_each_feature) before.each_scenario(self.syslog_writer_before_each_scenario) before.each_step(self.syslog_writer_before_each_step) after.all(self.syslog_writer_after_all) after.each_feature(self.syslog_writer_after_each_feature) after.each_scenario(self.syslog_writer_after_each_scenario) after.each_step(self.syslog_writer_after_each_step)
def __init__(self, marker): self.marker = marker # import syslog only if the extension got loaded # but not if the module got loaded. import syslog # noqa before.all()(self.syslog_writer_before_all) before.each_feature()(self.syslog_writer_before_each_feature) before.each_scenario()(self.syslog_writer_before_each_scenario) before.each_step()(self.syslog_writer_before_each_step) after.all()(self.syslog_writer_after_all) after.each_feature()(self.syslog_writer_after_each_feature) after.each_scenario()(self.syslog_writer_after_each_scenario) after.each_step()(self.syslog_writer_after_each_step)
def test_decorating_with_hook(self): """ Test decorating function as hook """ hookregistry = HookRegistry() def some_func(): pass hookregistry.hooks["each_feature"]["before"].should.have.length_of(0) before.each_feature(some_func) hookregistry.hooks["each_feature"]["before"].should.have.length_of(1) hookregistry.hooks["each_feature"]["before"][0].should.be.equal(some_func) hookregistry.hooks["each_step"]["after"].should.have.length_of(0) after.each_step(some_func) hookregistry.hooks["each_step"]["after"].should.have.length_of(1) hookregistry.hooks["each_step"]["after"][0].should.be.equal(some_func)
def test_decorating_with_hook(self): """ Test decorating function as hook """ hookregistry = HookRegistry() def some_func(): pass hookregistry.hooks["each_feature"]["before"].should.have.length_of(0) before.each_feature(some_func) hookregistry.hooks["each_feature"]["before"].should.have.length_of(1) hookregistry.hooks["each_feature"]["before"][0].should.be.equal( some_func) hookregistry.hooks["each_step"]["after"].should.have.length_of(0) after.each_step(some_func) hookregistry.hooks["each_step"]["after"].should.have.length_of(1) hookregistry.hooks["each_step"]["after"][0].should.be.equal(some_func)
""" radish ~~~~~~ The root from red to green. BDD tooling for Python. :copyright: (c) 2019 by Timo Furrer <*****@*****.**> :license: MIT, see LICENSE for more details. """ from radish.models.timed import Timed from radish.hookregistry import before, after def record_starttime(timed_model: Timed): """Record the start time for the given Model""" timed_model.record_starttime() def record_endtime(timed_model: Timed): """Record the end time for the given Model""" timed_model.record_endtime() before.each_feature(always=True)(lambda f: record_starttime(f)) before.each_scenario(always=True)(lambda f: record_starttime(f)) before.each_step(always=True)(lambda f: record_starttime(f)) after.each_feature(always=True)(lambda f: record_endtime(f)) after.each_scenario(always=True)(lambda f: record_endtime(f)) after.each_step(always=True)(lambda f: record_endtime(f))