テスト用のクラスにパッチを適用するのに問題があります。Scrapy に属するもの ( HtmlXpathSelectorクラス) にパッチを適用しようとしています。
ここにいくつかのコードがあります:
from scrapy.selector import HtmlXPathSelector
from mock import MagicMock, patch
with patch('scrapy.selector.HtmlXPathSelector') as MockHtml:
instance = MockHtml.return_value
instance.method.return_value = 'foo'
example = HtmlXPathSelector()
print type(example)
assert example is instance
assert example.method == 'foo'
結果は次のとおりです。
<class 'scrapy.selector.lxmlsel.HtmlXPathSelector'>
Traceback (most recent call last):
File "<stdin>", line 6, in <module>
AssertionError
>>>
この例は、モック ライブラリ チュートリアルのものとほぼ同じです。なぜそれが機能しないのですか?