disconnect signals before uninstalling crawler in image tests

This commit is contained in:
Daniel Grana 2010-10-23 05:10:52 -02:00
parent ad43917322
commit fe1dd3a93d
3 changed files with 12 additions and 9 deletions

View File

@ -148,9 +148,9 @@ class ImagesPipeline(MediaPipeline):
's3': S3ImagesStore,
}
def __init__(self, store_uri):
def __init__(self, store_uri, download_func=None):
self.store = self._get_store(store_uri)
super(ImagesPipeline, self).__init__()
super(ImagesPipeline, self).__init__(download_func=download_func)
@classmethod
def from_settings(cls, settings):

View File

@ -5,8 +5,6 @@ from shutil import rmtree
from twisted.trial import unittest
from scrapy.crawler import Crawler
from scrapy.conf import settings
try:
import Image
@ -14,6 +12,10 @@ try:
except ImportError, e:
skip = True
def _mocked_download_func(request, info):
response = request.meta.get('response')
return response() if callable(response) else response
class ImagesPipelineTestCase(unittest.TestCase):
@ -21,14 +23,10 @@ class ImagesPipelineTestCase(unittest.TestCase):
def setUp(self):
from scrapy.contrib.pipeline.images import ImagesPipeline
self.crawler = Crawler(settings)
self.crawler.install()
self.tempdir = mkdtemp()
self.pipeline = ImagesPipeline(self.tempdir)
self.pipeline = ImagesPipeline(self.tempdir, download_func=_mocked_download_func)
def tearDown(self):
self.crawler.uninstall()
rmtree(self.tempdir)
def test_image_path(self):

View File

@ -9,6 +9,8 @@ from scrapy.spider import BaseSpider
from scrapy.utils.request import request_fingerprint
from scrapy.contrib.pipeline.media import MediaPipeline
from scrapy.utils.test import get_crawler
from scrapy.utils.signal import disconnect_all
from scrapy import signals
from scrapy import log
@ -28,6 +30,9 @@ class BaseMediaPipelineTestCase(unittest.TestCase):
self.info = self.pipe.spiderinfo[self.spider]
def tearDown(self):
for name, signal in vars(signals).items():
if not name.startswith('_'):
disconnect_all(signal)
self.pipe.close_spider(self.spider)
def test_default_media_to_download(self):