Io sto cercando di ottenere mock.patch a lavorare il seguente pezzo di codice di esempio:patch Mock da/istruzione import in Python
from mock import patch
from collections import defaultdict
with patch('collections.defaultdict'):
d = defaultdict()
print 'd:', d
Emette il seguente:
d: defaultdict(None, {})
Il che significa quel defaultdict non è stato patchato.
Se si sostituisce la dichiarazione/importazione con un istruzione import dritto funziona:
from mock import patch
import collections
with patch('collections.defaultdict'):
d = collections.defaultdict()
print 'd:', d
uscita è:
d: <MagicMock name='defaultdict()' id='139953944084176'>
C'è un modo per rattoppare una chiamata utilizzando da/importazione?
Grazie
Questo non significa che i test di unità inizieranno silenziosamente a comportarsi in modo molto, molto diverso se si modificano i dettagli dell'implementazione sia che si utilizzi 'da X import Y' o' import X.Y'? – detly
@detly: Credo che sia vero, anche se non ho molta familiarità con la simulazione, quindi non posso dire per esperienza. – BrenBarn
@detly sì, è corretto – Daenyth