Je dois corriger os.listdir
et d'autres fonctions os
pour tester ma fonction Python. Mais quand ils sont corrigés, l'instruction import
échoue. Est-il possible de patcher cette fonction uniquement à l'intérieur de ce seul module, le vrai, et laisser tests.py fonctionner normalement?Patcher une fonction avec Mock uniquement pour un module?
Voici un exemple qui casse import
:
import os
from mock import patch
# when both isdir and isfile are patched
# the function crashes
@patch('os.path.isdir', return_value=False)
@patch('os.path.isfile', return_value=False)
def test(*args):
import ipdb; ipdb.set_trace()
real_function(some_arguments)
pass
test()
Je veux real_function
de voir une version patchée os.path
, et des tests pour voir les fonctions normales.
C'est une bonne idée. En fait, je peux créer mon propre gestionnaire de contexte. –