Releases: smarie/python-pytest-cases
1.7.0 - New `@pytest_parametrize_plus` allowing fixture references to be used in parameter values
New decorator @pytest_parametrize_plus
able to handle the case where a fixture_ref(<fixture_name>)
is present in the parameter values list. This decorator can be applied both on test functions and fixtures (if they are decorated with @pytest_fixture_plus
). Fixes #40
Major refactoring of the "union fixtures" mechanism.
- The
NOT_USED
status is now correctly propagated between dependent fixtures. This should fix a few cases where user fixtures were setup/teardown while not used in the current test node. - Empty fixture unions are not permitted anymore.
- The way unions are handled in test parametrization was redesigned. The new design is based on a two-steps approach: first build the fixture closure for each node as a tree (and not a list as in
pytest
), and then apply parametrization intelligently based on this tree structure. This fixes several unintuitive behaviours that were happening with unions.
Note: interestingly this also fixes pytest#5054.
See documentation page for details.
1.6.3 - Minor exception enhancement
Improved the error message when the name template is wrong in @cases_generator
. Fixes #39.
See documentation page for details.
1.6.2 - bug fixes
fixture_union
:
-
Changed the repr of
NOT_USED
topytest_cases.NOT_USED
. -
@pytest_fixture_plus
now correctly handles theNOT_USED
when fixtures in the union do not contain any parameter. Fixes #38.
param_fixtures
:
-
param_fixtures
now delegates toparam_fixture
when a single parameter name is provided. This is more consistent. Fixed #36. -
param_fixture[s]
now support all arguments fromfixture
(scope
andautouse
in particular).
See documentation page for details.
1.6.1 - `@pytest_fixture_plus` improvement to handle `NOT_USED` cases
Fixed issue where fixtures get called with NOT_USED
as a parameter when using a fixture_union
. This issue is actually only fixed in @pytest_fixture_plus
, if you use @pytest.fixture
you have to handle it manually. Fixes #37
See documentation page for details.
1.6.0 - `fixture_union` and `param_fixture[s]` bugfix
New fixture_union
method to create a fixture that is the union/combination of other fixtures. This is an attempt to solve this pytest proposal.
Also, param_fixture
and param_fixtures
can now be used without necessarily storing the return value into a variable: they will automatically register the created fixtures in the calling module.
Finally, fixed a bug with param_fixtures
when called to create a fixture for a single parameter.
See documentation page for details.
1.5.1 - `param_fixtures` bugfix
Fixed param_fixtures
issue: all parameter values were identical to the last parameter of the tuple. Fixes #32.
See documentation page for details.
1.5.0 - new helpers `param_fixture` and `param_fixtures`
Following Sup3rGeo's proposal, introduced two helper methods to create simple "parameter fixtures". Fixes #31
See documentation page for details.
1.4.2 - parametrized `@pytest_fixture_plus` minor bug fix
@pytest_fixture_plus
now correctly honors parameter id and marks overriden at single parameter level using pytest.param
. Fixed #30
See documentation page for details.
1.4.1 - parametrized `@pytest_fixture_plus` minor bug fix
Fixed @pytest_fixture_plus
in case it is used with parametrize
and one parameter is itself customized using pytest.param
. Fixed #29.
See documentation page for details.
1.4.0 - `@pytest_fixture_plus` major improvement
-
Major improvement of
@pytest_fixture_plus
: instead of generating fixtures, it now correctly parametrizes the fixture. Skip/fail Marks are correctly copied too. Fixes #28 -
pytest_fixture_plus
does not accept theparams
andids
arguments any more, it only relies on parametrization marks.
See documentation page for details.