Bonjour à tous,
je travaille avec des Notebooks Jupyter avec mes élèves, et pour certains scripts je veux leur interdire d'utiliser certaines fonctions. j'y arrive très bien pour des fonction comme len :
Et dans ce cas là la fonction programmée ne passe pas le bloc de test si len(chaine) est utilisée dans la fonction longueur()Code:
1
2
3
4 from unittest.mock import patch with patch('__main__.len') as mock_len: longueur("aaa") mock_len.assert_not_called()
mais impossible d'y arriver avec des méthodes comme .count(), je n'arrive pas à patcher count.
J'ai réussi à faire ça :
qui effectivement me renvoieCode:
1
2
3
4
5 from unittest.mock import MagicMock L = MagicMock() L.return_value=("") compte(L,"b") assert L.count.assert_not_called()
mais si il n'y a pas d'erreur (sans utiliser count) et comme ma fonction compte(a,b) est récursive ben là c'est fini, je plante tout...Code:AssertionError: Expected 'count' to not have been called. Called 1 times.
Quelqu'un aurait une solution pour tester si ma fonction compte(a,b) utilise .count() ?
Merci du coup de main