1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-25 00:04:03 +00:00
scrapy/scrapyd/tests/test_spiderqueue.py
Pablo Hoffman 75e2c3eb33 moved spider queues to scrapyd
--HG--
rename : scrapy/spiderqueue.py => scrapyd/spiderqueue.py
rename : scrapy/tests/test_spiderqueue.py => scrapyd/tests/test_spiderqueue.py
2011-07-19 19:39:27 -03:00

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)