Au travail, nous utilisons un décorateur @rollback
sur des fonctions de test sélectionnées qui annuleront toutes les modifications de base de données effectuées pendant ce test.pytest: Utilisation de l'injection de dépendances avec les décorateurs
J'ai récemment commencé à utiliser l'injection de dépendance de pytest pour quelques cas d'utilisation, à la fois avec @pytest.mark.parametrize(...)
et le hook pytest_funcarg__XXX
. Malheureusement, cela se heurte à nos fonctions de test décorées.
Comment est-ce que je peux faire ce travail?
Ma première idée utilisait un marqueur personnalisé, et dire @pytest.mark.rollback
faire quelque chose comme:
def rollback(meth):
"""Original rollback function"""
...
def pytest_runtest_setup(item):
if not isinstance(item, pytest.Function):
return
if hasattr(item.obj, 'rollback'):
item = rollback(item)
Peut serait une approche comme celui-ci fonctionne réellement?