【发布时间】:2016-06-05 00:44:02
【问题描述】:
是否可以创建一个scrapy-pipeline 的集成测试?我不知道该怎么做。特别是我正在尝试为 FilesPipeline 编写一个测试,并且我还希望它能够保留我对 Amazon S3 的模拟响应。
这是我的测试:
def _mocked_download_func(request, info):
return Response(url=response.url, status=200, body="test", request=request)
class FilesPipelineTests(unittest.TestCase):
def setUp(self):
self.settings = get_project_settings()
crawler = Crawler(self.settings)
crawler.configure()
self.pipeline = FilesPipeline.from_crawler(crawler)
self.pipeline.open_spider(None)
self.pipeline.download_func = _mocked_download_func
@defer.inlineCallbacks
def test_file_should_be_directly_available_from_s3_when_processed(self):
item = CrawlResult()
item['id'] = "test"
item['file_urls'] = ['http://localhost/test']
result = yield self.pipeline.process_item(item, None)
self.assertEquals(result['files'][0]['path'], "full/002338a87aab86c6b37ffa22100504ad1262f21b")
我总是遇到以下错误:
DirtyReactorAggregateError: Reactor was unclean.
如何使用twisted 和scrapy 创建正确的测试?
【问题讨论】:
标签: python-2.7 scrapy twisted nose