mirror of
https://github.com/scrapy/scrapy.git
synced 2025-02-24 03:43:56 +00:00
implement DeprecatedImagesPipelineTestCase
This commit is contained in:
parent
65c017c5fe
commit
6959523338
@ -1,4 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
|
import hashlib
|
||||||
|
import warnings
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
from tempfile import mkdtemp
|
from tempfile import mkdtemp
|
||||||
from shutil import rmtree
|
from shutil import rmtree
|
||||||
@ -8,6 +10,7 @@ from twisted.trial import unittest
|
|||||||
from scrapy.item import Item, Field
|
from scrapy.item import Item, Field
|
||||||
from scrapy.http import Request
|
from scrapy.http import Request
|
||||||
from scrapy.settings import Settings
|
from scrapy.settings import Settings
|
||||||
|
from scrapy.contrib.pipeline.images import ImagesPipeline
|
||||||
|
|
||||||
skip = False
|
skip = False
|
||||||
try:
|
try:
|
||||||
@ -30,7 +33,6 @@ class ImagesPipelineTestCase(unittest.TestCase):
|
|||||||
skip = skip
|
skip = skip
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
from scrapy.contrib.pipeline.images import ImagesPipeline
|
|
||||||
self.tempdir = mkdtemp()
|
self.tempdir = mkdtemp()
|
||||||
self.pipeline = ImagesPipeline(self.tempdir, download_func=_mocked_download_func)
|
self.pipeline = ImagesPipeline(self.tempdir, download_func=_mocked_download_func)
|
||||||
|
|
||||||
@ -86,6 +88,76 @@ class ImagesPipelineTestCase(unittest.TestCase):
|
|||||||
self.assertEquals(converted.getcolors(), [(10000, (205, 230, 255))])
|
self.assertEquals(converted.getcolors(), [(10000, (205, 230, 255))])
|
||||||
|
|
||||||
|
|
||||||
|
class DeprecatedImagesPipeline(ImagesPipeline):
|
||||||
|
def file_key(self, url):
|
||||||
|
return self.image_key(url)
|
||||||
|
|
||||||
|
def image_key(self, url):
|
||||||
|
image_guid = hashlib.sha1(url).hexdigest()
|
||||||
|
return 'empty/%s.jpg' % (image_guid)
|
||||||
|
|
||||||
|
def thumb_key(self, url, thumb_id):
|
||||||
|
thumb_guid = hashlib.sha1(url).hexdigest()
|
||||||
|
return 'thumbsup/%s/%s.jpg' % (thumb_id, thumb_guid)
|
||||||
|
|
||||||
|
|
||||||
|
class DeprecatedImagesPipelineTestCase(unittest.TestCase):
|
||||||
|
def setUp(self):
|
||||||
|
self.tempdir = mkdtemp()
|
||||||
|
|
||||||
|
def init_pipeline(self, pipeline_class):
|
||||||
|
self.pipeline = pipeline_class(self.tempdir, download_func=_mocked_download_func)
|
||||||
|
self.pipeline.open_spider(None)
|
||||||
|
|
||||||
|
def test_default_file_key_method(self):
|
||||||
|
self.init_pipeline(ImagesPipeline)
|
||||||
|
with warnings.catch_warnings(record=True) as w:
|
||||||
|
warnings.simplefilter('always')
|
||||||
|
self.assertEqual(self.pipeline.file_key("https://dev.mydeco.com/mydeco.gif"),
|
||||||
|
'full/3fd165099d8e71b8a48b2683946e64dbfad8b52d.jpg')
|
||||||
|
self.assertEqual(len(w), 1)
|
||||||
|
self.assertTrue('image_key(url) and file_key(url) methods are deprecated' in str(w[-1].message))
|
||||||
|
|
||||||
|
def test_default_image_key_method(self):
|
||||||
|
self.init_pipeline(ImagesPipeline)
|
||||||
|
with warnings.catch_warnings(record=True) as w:
|
||||||
|
warnings.simplefilter('always')
|
||||||
|
self.assertEqual(self.pipeline.image_key("https://dev.mydeco.com/mydeco.gif"),
|
||||||
|
'full/3fd165099d8e71b8a48b2683946e64dbfad8b52d.jpg')
|
||||||
|
self.assertEqual(len(w), 1)
|
||||||
|
self.assertTrue('image_key(url) and file_key(url) methods are deprecated' in str(w[-1].message))
|
||||||
|
|
||||||
|
def test_overridden_file_key_method(self):
|
||||||
|
self.init_pipeline(DeprecatedImagesPipeline)
|
||||||
|
with warnings.catch_warnings(record=True) as w:
|
||||||
|
warnings.simplefilter('always')
|
||||||
|
self.assertEqual(self.pipeline.file_path(Request("https://dev.mydeco.com/mydeco.gif")),
|
||||||
|
'empty/3fd165099d8e71b8a48b2683946e64dbfad8b52d.jpg')
|
||||||
|
self.assertEqual(len(w), 1)
|
||||||
|
self.assertTrue('image_key(url) and file_key(url) methods are deprecated' in str(w[-1].message))
|
||||||
|
|
||||||
|
def test_default_thumb_key_method(self):
|
||||||
|
self.init_pipeline(ImagesPipeline)
|
||||||
|
with warnings.catch_warnings(record=True) as w:
|
||||||
|
warnings.simplefilter('always')
|
||||||
|
self.assertEqual(self.pipeline.thumb_key("file:///tmp/foo.jpg", 50),
|
||||||
|
'thumbs/50/38a86208c36e59d4404db9e37ce04be863ef0335.jpg')
|
||||||
|
self.assertEqual(len(w), 1)
|
||||||
|
self.assertTrue('thumb_key(url) method is deprecated' in str(w[-1].message))
|
||||||
|
|
||||||
|
def test_overridden_thumb_key_method(self):
|
||||||
|
self.init_pipeline(DeprecatedImagesPipeline)
|
||||||
|
with warnings.catch_warnings(record=True) as w:
|
||||||
|
warnings.simplefilter('always')
|
||||||
|
self.assertEqual(self.pipeline.thumb_path(Request("file:///tmp/foo.jpg"), 50),
|
||||||
|
'thumbsup/50/38a86208c36e59d4404db9e37ce04be863ef0335.jpg')
|
||||||
|
self.assertEqual(len(w), 1)
|
||||||
|
self.assertTrue('thumb_key(url) method is deprecated' in str(w[-1].message))
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
rmtree(self.tempdir)
|
||||||
|
|
||||||
|
|
||||||
class ImagesPipelineTestCaseFields(unittest.TestCase):
|
class ImagesPipelineTestCaseFields(unittest.TestCase):
|
||||||
|
|
||||||
def test_item_fields_default(self):
|
def test_item_fields_default(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user