Skip to content

Commit

Permalink
Merge pull request #250 from Digenis/drop-deprecated-classes
Browse files Browse the repository at this point in the history
Drop deprecated classes
  • Loading branch information
Digenis committed Nov 14, 2017
2 parents 1759772 + f4e101d commit f2b7e20
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 119 deletions.
44 changes: 0 additions & 44 deletions scrapyd/sqlite.py
@@ -1,8 +1,4 @@
import sqlite3
try:
import cPickle as pickle
except:
import pickle
import json
try:
from collections.abc import MutableMapping
Expand Down Expand Up @@ -82,26 +78,6 @@ def decode(self, obj):
return json.loads(bytes(obj).decode('ascii'))


@deprecate_class
class PickleSqliteDict(JsonSqliteDict):

def encode(self, obj):
return sqlite3.Binary(pickle.dumps(obj, protocol=2))

def decode(self, obj):
return pickle.loads(bytes(obj))


@deprecate_class
class SqliteDict(JsonSqliteDict):

def encode(self, obj):
return obj

def decode(self, obj):
return obj


class JsonSqlitePriorityQueue(object):
"""SQLite priority queue. It relies on SQLite concurrency support for
providing atomic inter-process operations.
Expand Down Expand Up @@ -169,23 +145,3 @@ def encode(self, obj):

def decode(self, text):
return json.loads(bytes(text).decode('ascii'))


@deprecate_class
class PickleSqlitePriorityQueue(JsonSqlitePriorityQueue):

def encode(self, obj):
return sqlite3.Binary(pickle.dumps(obj, protocol=2))

def decode(self, obj):
return pickle.loads(bytes(obj))


@deprecate_class
class SqlitePriorityQueue(JsonSqlitePriorityQueue):

def encode(self, obj):
return obj

def decode(self, obj):
return obj
18 changes: 2 additions & 16 deletions scrapyd/tests/test_spiderqueue.py
Expand Up @@ -7,13 +7,11 @@
from scrapyd import spiderqueue

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.
"""This test case also supports queues with deferred methods.
"""

def setUp(self):
self.q = self._get_queue()
self.q = spiderqueue.SqliteSpiderQueue(':memory:')
self.name = 'spider1'
self.args = {
'arg1': 'val1',
Expand All @@ -23,8 +21,6 @@ def setUp(self):
self.msg = self.args.copy()
self.msg['name'] = self.name

def _get_queue(self):
return spiderqueue.SqliteSpiderQueue(':memory:')

def test_interface(self):
verifyObject(ISpiderQueue, self.q)
Expand Down Expand Up @@ -68,13 +64,3 @@ def test_clear(self):

c = yield maybeDeferred(self.q.count)
self.assertEqual(c, 0)


class JsonSpiderQueueTest(unittest.TestCase):
def _get_queue(self):
return spiderqueue.JsonSqliteSpiderQueue(':memory:')


class PickleSpiderQueueTest(unittest.TestCase):
def _get_queue(self):
return spiderqueue.PickleSqliteSpiderQueue(':memory:')
75 changes: 16 additions & 59 deletions scrapyd/tests/test_sqlite.py
Expand Up @@ -3,14 +3,14 @@
from decimal import Decimal

from scrapy.http import Request
from scrapyd.sqlite import SqlitePriorityQueue, JsonSqlitePriorityQueue, \
PickleSqlitePriorityQueue, SqliteDict, JsonSqliteDict, PickleSqliteDict
from scrapyd.sqlite import JsonSqlitePriorityQueue, JsonSqliteDict


class SqliteDictTest(unittest.TestCase):
class JsonSqliteDictTest(unittest.TestCase):

dict_class = SqliteDict
test_dict = {'hello': 'world', 'int': 1, 'float': 1.5}
dict_class = JsonSqliteDict
test_dict = {'hello': 'world', 'int': 1, 'float': 1.5, 'null': None,
'list': ['a', 'word'], 'dict': {'some': 'dict'}}

def test_basic_types(self):
test = self.test_dict
Expand Down Expand Up @@ -39,34 +39,19 @@ def test_replace(self):
self.assertEqual(d.get('test'), 456)


class JsonSqliteDictTest(SqliteDictTest):

dict_class = JsonSqliteDict
test_dict = SqliteDictTest.test_dict.copy()
test_dict.update({'list': ['a', 'world'], 'dict': {'some': 'dict'}})


class PickleSqliteDictTest(JsonSqliteDictTest):

dict_class = PickleSqliteDict
test_dict = JsonSqliteDictTest.test_dict.copy()
test_dict.update({'decimal': Decimal("10"), 'datetime': datetime.now()})

def test_request_persistance(self):
r1 = Request("http://www.example.com", body="some")
d = self.dict_class()
d['request'] = r1
r2 = d['request']
self.failUnless(isinstance(r2, Request))
self.failUnlessEqual(r1.url, r2.url)
self.failUnlessEqual(r1.body, r2.body)

class JsonSqlitePriorityQueueTest(unittest.TestCase):

class SqlitePriorityQueueTest(unittest.TestCase):

queue_class = SqlitePriorityQueue
queue_class = JsonSqlitePriorityQueue

supported_values = ["native ascii str", u"\xa3", 123, 1.2, True]
supported_values = [
"native ascii str",
u"\xa3",
123,
1.2,
True,
["a", "list", 1],
{"a": "dict"},
]

def setUp(self):
self.q = self.queue_class()
Expand Down Expand Up @@ -143,31 +128,3 @@ def test_types(self):
for x in self.supported_values:
self.q.put(x)
self.failUnlessEqual(self.q.pop(), x)


class JsonSqlitePriorityQueueTest(SqlitePriorityQueueTest):

queue_class = JsonSqlitePriorityQueue

supported_values = SqlitePriorityQueueTest.supported_values + [
["a", "list", 1],
{"a": "dict"},
]


class PickleSqlitePriorityQueueTest(JsonSqlitePriorityQueueTest):

queue_class = PickleSqlitePriorityQueue

supported_values = JsonSqlitePriorityQueueTest.supported_values + [
Decimal("10"),
datetime.now(),
]

def test_request_persistance(self):
r1 = Request("http://www.example.com", body="some")
self.q.put(r1)
r2 = self.q.pop()
self.failUnless(isinstance(r2, Request))
self.failUnlessEqual(r1.url, r2.url)
self.failUnlessEqual(r1.body, r2.body)

0 comments on commit f2b7e20

Please sign in to comment.