示例#1
0
    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"
示例#2
0
 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)
示例#3
0
    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
示例#4
0
    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 = []
示例#5
0
    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
示例#6
0
 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)
示例#7
0
 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)
示例#8
0
    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
示例#9
0
    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)
示例#10
0
    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)
示例#11
0
    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)
示例#12
0
    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)
示例#13
0
文件: gherkin.py 项目: nokia/radish
    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)
示例#14
0
    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)
示例#15
0
    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)
示例#16
0
    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)
示例#17
0
 def __init__(self):
     after.each_step(self.failure_inspector)
示例#18
0
 def __init__(self):
     after.each_step(self.failure_inspector)
示例#19
0
文件: timer.py 项目: nokia/radish
"""
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))
示例#20
0
 def __init__(self):
     after.each_step(self.failure_debugger)
示例#21
0
 def __init__(self):
     after.each_step(self.failure_debugger)