Petit truc pour faire des tests paramétrisés avec Pytest qui utilisent des fixtures en tant que paramètre : il faut ajouter une fixture ''request'' en paramètre de la méthode de test et à l'intérieur de ladite la méthode faire ''request.getfixturevalue(param)''
Par exemple, ce code ne marche pas
@pytest.fixture
def foo():
return "foo"
@pytest.fixture
def bar():
return "bar"
@pytest.mark.parametrize("baz", [foo, bar])
def test_parameterized(baz, request) -> None:
assert isinstance(baz, str)
Alors que ce code fonctionne
@pytest.fixture
def foo():
return "foo"
@pytest.fixture
def bar():
return "bar"
@pytest.mark.parametrize("baz", ["foo", "bar"])
def test_parameterized(baz, request) -> None:
file = request.getfixturevalue(filename)
assert isinstance(baz, str)