You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hovering a phase in the HTML report's narration, or a column of its parameter table, highlights that phase in both.
Scenarios that fail as expected (xfail) get their own xfailed status, with their reason, steps and error, in every report format.
Changed
The parameter table orders its columns the way the narration first shows them, and shows its status column only when the cases differ in status.
The HTML report's Stories view shows each scenario as a full card that expands in place, and a tag clicked there opens the Scenarios view filtered by it.
The HTML report is visually tidied: term refs, the Glossary view, story coverage, narration spacing, hover states and the header row are restyled, and a parametrized scenario is marked by a second status bar.
The bundled pytest-given-authoring skill asks for one scenario per rule and covers parametrized scenarios as decision tables, and the pytest-given-reviewing skill catches more ways scenarios, glossary rows, pins, tags and parameter tables can disagree.
Fixed
A @given fixture parametrized with an unhashable value, such as a list, no longer errors every test that requests it.
Editor source links build {path} from pytest's rootdir instead of the working directory, so they no longer point at a doubled path when pytest runs from a subdirectory.
A scenario deep link stays working when the test's file or directory name contains +, &, = or #.
A parametrize value of infinity or NaN reaches the JSON report as a string ("inf", "nan"), so the report stays valid JSON.
A @given generator fixture that yields twice errors with pytest's own "more than one 'yield'" message, as it does without pytest-given, instead of passing silently.
An Annotated[..., given(Template(...))] label whose placeholder is not a bare parametrize column name now fails its scenario with the fix, instead of crashing the HTML report or silently dropping the step.
A scenario failing on a pytest-given refusal raised from its test body points at the test's own line, not at pytest-given's.
Error messages are clearer: a FileGlossary table error names the file, so does a glossary file that is a directory or not UTF-8, and a step nested across phases gets a concrete fix suggested.
The Markdown report's note below a parameter table names the row by its short parametrize values or its row number, instead of repeating multiline values.
A failure inside the narration lint is summarized under pytest-given: narration lint failed, no longer as report not written beside a report that was kept.
The tag-shadows-term lint finding counts a scenario once when it carries two spellings of the tag, such as Guest and guest.
pytest-given report -o report.markdown writes Markdown, as -o report.md does, instead of refusing the path as an HTML one.
pytest-given report --help mentions Markdown output and says where each format goes without -o.
The HTML report's links keep a tag filter whose tag contains a comma, by repeating the parameter per tag or term (#tag=a&tag=b), and copying a link no longer replaces the current page's entry in the browser history.
The HTML report no longer says "All Scenarios" when every status is filtered out, disables a status filter no scenario has, and the Glossary view says no terms match when every kind is unchecked.
The HTML report's view tabs and search boxes show a visible keyboard focus ring, and a turned-off status filter keeps readable contrast.
The HTML report's status filters wrap onto a second row instead of being cut off in a narrow sidebar.
A parametrized scenario shows a skip reason only when every case was skipped, no longer its first case's reason beside cases that ran.