mirror of
https://github.com/scrapy/scrapy.git
synced 2025-02-25 00:04:03 +00:00
--HG-- rename : scrapy/spiderqueue.py => scrapyd/spiderqueue.py rename : scrapy/tests/test_spiderqueue.py => scrapyd/tests/test_spiderqueue.py
67 lines
1.9 KiB
Python
67 lines
1.9 KiB
Python
from twisted.internet.defer import inlineCallbacks, maybeDeferred
|
|
from twisted.trial import unittest
|
|
|
|
from zope.interface.verify import verifyObject
|
|
|
|
from scrapyd.interfaces import ISpiderQueue
|
|
from scrapyd.spiderqueue import SqliteSpiderQueue
|
|
|
|
class SpiderQueueTest(unittest.TestCase):
|
|
"""This test case can be used easily for testing other SpiderQueue's by
|
|
just changing the _get_queue() method. It also supports queues with
|
|
deferred methods.
|
|
"""
|
|
|
|
def setUp(self):
|
|
self.q = self._get_queue()
|
|
self.name = 'spider1'
|
|
self.args = {'arg1': 'val1', 'arg2': 2}
|
|
self.msg = self.args.copy()
|
|
self.msg['name'] = self.name
|
|
|
|
def _get_queue(self):
|
|
return SqliteSpiderQueue(':memory:')
|
|
|
|
def test_interface(self):
|
|
verifyObject(ISpiderQueue, self.q)
|
|
|
|
@inlineCallbacks
|
|
def test_add_pop_count(self):
|
|
c = yield maybeDeferred(self.q.count)
|
|
self.assertEqual(c, 0)
|
|
|
|
yield maybeDeferred(self.q.add, self.name, **self.args)
|
|
|
|
c = yield maybeDeferred(self.q.count)
|
|
self.assertEqual(c, 1)
|
|
|
|
m = yield maybeDeferred(self.q.pop)
|
|
self.assertEqual(m, self.msg)
|
|
|
|
c = yield maybeDeferred(self.q.count)
|
|
self.assertEqual(c, 0)
|
|
|
|
@inlineCallbacks
|
|
def test_list(self):
|
|
l = yield maybeDeferred(self.q.list)
|
|
self.assertEqual(l, [])
|
|
|
|
yield maybeDeferred(self.q.add, self.name, **self.args)
|
|
yield maybeDeferred(self.q.add, self.name, **self.args)
|
|
|
|
l = yield maybeDeferred(self.q.list)
|
|
self.assertEqual(l, [self.msg, self.msg])
|
|
|
|
@inlineCallbacks
|
|
def test_clear(self):
|
|
yield maybeDeferred(self.q.add, self.name, **self.args)
|
|
yield maybeDeferred(self.q.add, self.name, **self.args)
|
|
|
|
c = yield maybeDeferred(self.q.count)
|
|
self.assertEqual(c, 2)
|
|
|
|
yield maybeDeferred(self.q.clear)
|
|
|
|
c = yield maybeDeferred(self.q.count)
|
|
self.assertEqual(c, 0)
|