From 3e1d1d2a4cf0afe6e30ad67a0d1ff13cec7e2958 Mon Sep 17 00:00:00 2001 From: Jason Allen Date: Fri, 29 Nov 2024 18:53:55 +0000 Subject: [PATCH 1/2] Add test to assert that issue 389 is resolved. Tidy up imports in tests in the same file as new test written. Resolves #389 --- tests/args/test_common.py | 51 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/tests/args/test_common.py b/tests/args/test_common.py index 9192e8128..84a824d0a 100644 --- a/tests/args/test_common.py +++ b/tests/args/test_common.py @@ -74,7 +74,7 @@ def test_string_steps_dont_take_precedence(pytester): pytester.makeconftest( textwrap.dedent( """ - from pytest_bdd import given, when, then, parsers + from pytest_bdd import given, when, then from pytest_bdd.utils import dump_obj @@ -95,8 +95,7 @@ def _(): pytester.makepyfile( textwrap.dedent( r""" - import pytest - from pytest_bdd import parsers, given, when, then, scenarios + from pytest_bdd import parsers, given, scenarios from pytest_bdd.utils import dump_obj scenarios("arguments.feature") @@ -114,3 +113,49 @@ def _(value): [which] = collect_dumped_objects(result) assert which == "re" + + +def test_same_name_for_step_arg_and_example_parameter(pytester): + """Test that using the same name for step arg and example parameter as intended.""" + pytester.makefile( + ".feature", + step_args_examples_params=textwrap.dedent( + """\ + Feature: Test feature + + Scenario Outline: Scenario 1 + Given Action "A" is taken + Then Some other action "" is taken + + Examples: Actions + | action | + | B | + """ + ), + ) + pytester.makepyfile( + textwrap.dedent( + """ + from pytest_bdd import scenarios, given, then, parsers + + scenarios('.') + + + @given(parsers.parse('Action "{action}" is taken')) + def take_action1(action): + print(f'take_action1:{action}') + + + @then(parsers.parse('Some other action "{action}" is taken')) + def take_action2(action): + print(f'take_action2:{action}') + + """ + ) + ) + + result = pytester.runpytest("-s") + result.assert_outcomes(passed=1) + + result.stdout.fnmatch_lines(["*take_action1:A*"]) + result.stdout.fnmatch_lines(["*take_action2:B*"]) From f94fad20977d61b24a721f4a48128c94b6fb2de7 Mon Sep 17 00:00:00 2001 From: jsa34 <31512041+jsa34@users.noreply.github.com> Date: Fri, 29 Nov 2024 20:12:38 +0000 Subject: [PATCH 2/2] Update test_common.py Make docstring make sense! --- tests/args/test_common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/args/test_common.py b/tests/args/test_common.py index 84a824d0a..ec51bd035 100644 --- a/tests/args/test_common.py +++ b/tests/args/test_common.py @@ -116,7 +116,7 @@ def _(value): def test_same_name_for_step_arg_and_example_parameter(pytester): - """Test that using the same name for step arg and example parameter as intended.""" + """Test that using the same name for step arg and example parameter works as intended.""" pytester.makefile( ".feature", step_args_examples_params=textwrap.dedent(