예제 #1
0
    def _get_match(self, ignore_case):
        matched, func = None, lambda: None
        for step, func in STEP_REGISTRY.items():
            regex = STEP_REGISTRY.get_regex(step, ignore_case)
            matched = regex.search(self.sentence)
            if matched:
                break

        return matched, StepDefinition(self, func)
예제 #2
0
파일: core.py 프로젝트: MikeHibbert/lettuce
    def _get_match(self, ignore_case):
        matched, func = None, lambda: None
        for step, func in STEP_REGISTRY.items():
            regex = STEP_REGISTRY.get_regex(step, ignore_case)
            matched = regex.search(self.sentence)
            if matched:
                break

        return matched, StepDefinition(self, func)
예제 #3
0
    def _get_match(self, ignore_case):
        matched, func = None, lambda: None
        for regex, func in STEP_REGISTRY.items():
            matched = re.search(regex, self.sentence, ignore_case and re.I or 0)
            if matched:
                break

        return matched, StepDefinition(self, func)
예제 #4
0
    def _get_match(self, ignore_case):
        matched, func = None, lambda: None

        for regex, func in STEP_REGISTRY.items():
            matched = re.search(regex, self.sentence, ignore_case and re.I or 0)
            if matched:
                break

        return matched, StepDefinition(self, func)
예제 #5
0
    def _get_match(self):
        matched, func = None, lambda: None

        for regex, func in STEP_REGISTRY.iteritems():
            matched = regex.search(self.sentence)
            if matched:
                break

        return matched, StepDefinition(self, func)
예제 #6
0
def test_after_each_all_is_executed_before_each_all():
    """terrain.before.each_all and terrain.after.each_all decorators"""

    from lettuce import step
    from lettuce import Runner
    from lettuce.registry import STEP_REGISTRY
    from lettuce.terrain import before, after, world

    world.all_steps = []
    STEP_REGISTRY.clear()

    @before.all
    def set_state_to_before():
        world.all_steps.append('before')

    @step('append 1 in world all steps')
    def append_1_in_world_all_steps(step):
        world.all_steps.append("1")

    @step('append 2 more')
    def append_2_more(step):
        world.all_steps.append("2")

    @step('append 3 in world all steps')
    def append_during_to_all_steps(step):
        world.all_steps.append("3")

    @after.all
    def set_state_to_after(total):
        world.all_steps.append('after')

    runner = Runner(join(abspath(dirname(__file__)),
                         'simple_features', '2nd_feature_dir'))
    runner.run()

    assert_equals(
        world.all_steps,
        ['before', '1', '2', '3', 'after']
    )
예제 #7
0
def step(step_func_or_sentence):
    """Decorates a function, so that it will become a new step
    definition.
    You give step sentence either (by priority):
    * with step function argument (first example)
    * with function doc (second example)
    * with the function name exploded by underscores (third example)

    Example::

        >>> from lettuce import step
        >>> from models import contact
        >>>
        >>> # First Example
        >>> step(r'Given I delete the contact "(?P<name>.*)" from my address book')
        ... def given_i_do_something(step, name):
        ...     contact.delete_by_name(name)
        ...     assert step.sentence == 'Given I delete the contact "John Doe" from my address book'
        ...
        >>> # Second Example
        >>> @step
        ... def given_i_delete_a_contact_from_my_address_book(step, name):
        ...     '''Given I delete the contact "(?P<name>.*)" from my address book'''
        ...     contact.delete_by_name(name)
        ...     assert step.sentence == 'Given I delete the contact "(?P<name>.*)" from my address book'
        ...
        >>> # Third Example
        >>> @step
        ... def given_I_delete_the_contact_John_Doe_from_my_address_book(step):
        ...     contact.delete_by_name("John Doe")
        ...     assert step.sentence == 'Given I delete the contact John Doe from my address book'


    Notice that all step definitions take a step object as argument.
    """
    if _is_step_sentence(step_func_or_sentence):
        return lambda func: STEP_REGISTRY.load(step_func_or_sentence, func)
    else:
        return STEP_REGISTRY.load_func(step_func_or_sentence)
예제 #8
0
 def init(self, *args, **kwargs):
     _init_(self, *args, **kwargs)
     STEP_REGISTRY.load_steps(self)