Mock patching à partir de l'instruction / import en Python

J'essaie de me faire moquer.patch sur le morceau de code exemple:

from mock import patch
from collections import defaultdict

with patch('collections.defaultdict'):
  d = defaultdict()
  print 'd:', d

Ce sorties suivantes:

d: defaultdict(None, {})

Ce qui signifie que defaultdict n'a pas été patché.

Si je remplace la déclaration d'importation avec un droit d'importation déclaration de travaux:

from mock import patch
import collections

with patch('collections.defaultdict'):
 d = collections.defaultdict()
 print 'd:', d

De sortie est:

d: <MagicMock name='defaultdict()' id='139953944084176'>

Est-il un moyen de patcher un appel à l'aide de/l'importation?

Merci

source d'informationauteur oneself