Bonjour,

J'ai un code existant qui appelle un module que je ne peut pas modifier.

Exemple je ne peux pas modifier module_non_modifiable.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
import a.b.module_non_modifiable
 
module_non_modifiable.fonction()
Je dois "bouchonner" la fonction "fonction().

Je cherche un mécanisme, qui me permette, si pytest est lancé de ne plus importer a.b.module_non_modifiable mais avoir un code "bouchon" (un mock).

L'idée étant d'éviter de faire:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
 
C_PYTEST_ACTIF = True
 
if C_PYTEST_ACTIF:
   import test.module_non_modifiable
else:
   import a.b.module_non_modifiable

Mes recherches s'orientent vers monkepatch : https://docs.pytest.org/en/7.1.x/how...nkeypatch.html

Suis-je sur la bonne voie ?

Cordialement