Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sourcery refactored master branch #649

Merged
merged 1 commit into from
Nov 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/pytest_bdd/cucumber_json.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def _get_result(self, step: dict[str, Any], report: TestReport, error_message: b
result: dict[str, Any] = {}
if report.passed or not step["failed"]: # ignore setup/teardown
result = {"status": "passed"}
elif report.failed and step["failed"]:
elif report.failed:
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function LogBDDCucumberJSON._get_result refactored with the following changes:

result = {"status": "failed", "error_message": str(report.longrepr) if error_message else ""}
elif report.skipped:
result = {"status": "skipped"}
Expand Down
3 changes: 1 addition & 2 deletions src/pytest_bdd/generation.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,7 @@ def _show_missing_code_main(config: Config, session: Session) -> None:
features, scenarios, steps = parse_feature_files(config.option.features)

for item in session.items:
scenario = getattr(item.obj, "__scenario__", None)
if scenario:
if scenario := getattr(item.obj, "__scenario__", None):
if scenario in scenarios:
scenarios.remove(scenario)
for step in scenario.steps:
Expand Down
2 changes: 1 addition & 1 deletion src/pytest_bdd/gherkin_terminal_reporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ def pytest_runtest_logreport(self, report: TestReport) -> Any:
self._tw.write("\n")
for step in report.scenario["steps"]:
self._tw.write(f" {step['keyword']} {step['name']}\n", **scenario_markup)
self._tw.write(" " + word, **word_markup)
self._tw.write(f" {word}", **word_markup)
self._tw.write("\n\n")

self.stats.setdefault(cat, []).append(rep)
Expand Down
5 changes: 2 additions & 3 deletions src/pytest_bdd/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,7 @@ def strip_comments(line: str) -> str:

:return: Stripped line.
"""
res = COMMENT_RE.search(line)
if res:
if res := COMMENT_RE.search(line):
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function strip_comments refactored with the following changes:

line = line[: res.start()]
return line.strip()

Expand Down Expand Up @@ -189,7 +188,7 @@ def parse_feature(basedir: str, filename: str, encoding: str = "utf-8") -> Featu
scenario.examples.set_param_names([l for l in split_line(parsed_line) if l])
mode = types.EXAMPLE_LINE
elif mode == types.EXAMPLE_LINE:
scenario.examples.add_example([l for l in split_line(stripped_line)])
scenario.examples.add_example(list(split_line(stripped_line)))
Comment on lines -192 to +191
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function parse_feature refactored with the following changes:

elif mode and mode not in (types.FEATURE, types.TAG):
step = Step(name=parsed_line, type=mode, indent=line_indent, line_number=line_number, keyword=keyword)
if feature.background and not scenario:
Expand Down
13 changes: 5 additions & 8 deletions src/pytest_bdd/scenario.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def find_fixturedefs_for_step(step: Step, fixturemanager: FixtureManager, nodeid
"""Find the fixture defs that can parse a step."""
# happens to be that _arg2fixturedefs is changed during the iteration so we use a copy
fixture_def_by_name = list(fixturemanager._arg2fixturedefs.items())
for i, (fixturename, fixturedefs) in enumerate(fixture_def_by_name):
for fixturename, fixturedefs in fixture_def_by_name:
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function find_fixturedefs_for_step refactored with the following changes:

for pos, fixturedef in enumerate(fixturedefs):
step_func_context = getattr(fixturedef.func, "_pytest_bdd_step_context", None)
if step_func_context is None:
Expand Down Expand Up @@ -244,14 +244,11 @@ def scenario_wrapper(request: FixtureRequest, _pytest_bdd_example: dict[str, str
def collect_example_parametrizations(
templated_scenario: ScenarioTemplate,
) -> list[ParameterSet] | None:
# We need to evaluate these iterators and store them as lists, otherwise
# we won't be able to do the cartesian product later (the second iterator will be consumed)
contexts = list(templated_scenario.examples.as_contexts())
if not contexts:
if contexts := list(templated_scenario.examples.as_contexts()):
return [pytest.param(context, id="-".join(context.values())) for context in contexts]
else:
return None

return [pytest.param(context, id="-".join(context.values())) for context in contexts]
Comment on lines -247 to -253
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function collect_example_parametrizations refactored with the following changes:

This removes the following comments ( why? ):

# We need to evaluate these iterators and store them as lists, otherwise
# we won't be able to do the cartesian product later (the second iterator will be consumed)



def scenario(
feature_name: str, scenario_name: str, encoding: str = "utf-8", features_base_dir=None
Expand All @@ -263,7 +260,7 @@ def scenario(
:param str encoding: Feature file encoding.
"""
__tracebackhide__ = True
scenario_name = str(scenario_name)
scenario_name = scenario_name
Comment on lines -266 to +263
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function scenario refactored with the following changes:

caller_module_path = get_caller_module_path()

# Get the feature
Expand Down