变更
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
from unittest import mock
|
||||
|
||||
from scrapy import Spider
|
||||
from scrapy.http import Request
|
||||
|
||||
from scrapy_redis.queue import Base
|
||||
|
||||
|
||||
class TestBaseQueue:
|
||||
|
||||
queue_cls = Base
|
||||
|
||||
def setup(self):
|
||||
self.server = mock.Mock()
|
||||
self.spider = Spider(name="foo")
|
||||
self.spider.parse_method = lambda x: x
|
||||
self.key = "key"
|
||||
self.q = self.queue_cls(self.server, self.spider, self.key)
|
||||
|
||||
def test_encode_decode_requests(self, q=None):
|
||||
if q is None:
|
||||
q = self.q
|
||||
req = Request(
|
||||
"http://example.com", callback=self.spider.parse, meta={"foo": "bar"}
|
||||
)
|
||||
out = q._decode_request(q._encode_request(req))
|
||||
assert req.url == out.url
|
||||
assert req.meta == out.meta
|
||||
assert req.callback == out.callback
|
||||
|
||||
def test_custom_serializer(self):
|
||||
serializer = mock.Mock()
|
||||
serializer.dumps = mock.Mock(side_effect=lambda x: x)
|
||||
serializer.loads = mock.Mock(side_effect=lambda x: x)
|
||||
q = Base(self.server, self.spider, self.key, serializer=serializer)
|
||||
self.test_encode_decode_requests(q)
|
||||
assert serializer.dumps.call_count == 1
|
||||
assert serializer.loads.call_count == 1
|
||||
Reference in New Issue
Block a user