forked from test_framework/pytest-bdd
fixes given reuse
This commit is contained in:
parent
cab7b85872
commit
9247951600
|
@ -56,8 +56,8 @@ def given(name, fixture=None):
|
|||
name = remove_prefix(name)
|
||||
if fixture is not None:
|
||||
module = get_caller_module()
|
||||
func = getattr(module, fixture, lambda request: request.getfuncargvalue(fixture))
|
||||
setattr(module, name, pytest.fixture(lambda: func))
|
||||
func = lambda: lambda request: request.getfuncargvalue(fixture)
|
||||
setattr(module, name, pytest.fixture(func))
|
||||
return _not_a_fixture_decorator
|
||||
|
||||
return _step_decorator(GIVEN, name)
|
||||
|
|
2
setup.py
2
setup.py
|
@ -101,7 +101,7 @@ setup(
|
|||
license='MIT license',
|
||||
author_email='oleg.podsadny@gmail.com',
|
||||
url='https://github.com/olegpidsadnyi/pytest-bdd',
|
||||
version='0.4.3',
|
||||
version='0.4.4',
|
||||
classifiers=[
|
||||
'Development Status :: 6 - Mature',
|
||||
'Intended Audience :: Developers',
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
Scenario: Given and when using the same fixture should not evaluate it twice
|
||||
Given I have an empty list
|
||||
And I have a fixture (appends 1 to a list)
|
||||
And I have a fixture (appends 1 to a list) in reuse syntax
|
||||
When I use this fixture
|
||||
Then my list should be [1]
|
|
@ -0,0 +1,31 @@
|
|||
from pytest_bdd.steps import when
|
||||
|
||||
from pytest_bdd import given, then, scenario
|
||||
|
||||
test_reuse = scenario(
|
||||
'reuse.feature',
|
||||
'Given and when using the same fixture should not evaluate it twice',
|
||||
)
|
||||
|
||||
|
||||
@given('I have an empty list')
|
||||
def empty_list():
|
||||
return []
|
||||
|
||||
|
||||
@given('I have a fixture (appends 1 to a list)')
|
||||
def appends_1(empty_list):
|
||||
empty_list.append(1)
|
||||
return empty_list
|
||||
|
||||
given('I have a fixture (appends 1 to a list) in reuse syntax', fixture='appends_1')
|
||||
|
||||
|
||||
@when('I use this fixture')
|
||||
def use_fixture(appends_1):
|
||||
pass
|
||||
|
||||
|
||||
@then('my list should be [1]')
|
||||
def list_should_be_1(appends_1):
|
||||
assert appends_1 == [1]
|
Loading…
Reference in New Issue