diff --git a/scrapy/spidermanager.py b/scrapy/spidermanager.py index ce2e36f31..5a0951cb4 100644 --- a/scrapy/spidermanager.py +++ b/scrapy/spidermanager.py @@ -3,7 +3,7 @@ SpiderManager is the class which locates and manages all website-specific spiders """ -from zope.interface import implements +from zope.interface import implementer import six from scrapy import signals @@ -12,10 +12,9 @@ from scrapy.utils.misc import walk_modules from scrapy.utils.spider import iter_spider_classes +@implementer(ISpiderManager) class SpiderManager(object): - implements(ISpiderManager) - def __init__(self, spider_modules): self.spider_modules = spider_modules self._spiders = {} diff --git a/scrapy/utils/spider.py b/scrapy/utils/spider.py index d97b8a841..4e43bc13f 100644 --- a/scrapy/utils/spider.py +++ b/scrapy/utils/spider.py @@ -1,5 +1,7 @@ import inspect +import six + from scrapy import log from scrapy.item import BaseItem from scrapy.utils.misc import arg_to_iter @@ -16,7 +18,7 @@ def iter_spider_classes(module): # singleton in scrapy.spider.spiders from scrapy.spider import Spider - for obj in vars(module).itervalues(): + for obj in six.itervalues(vars(module)): if inspect.isclass(obj) and \ issubclass(obj, Spider) and \ obj.__module__ == module.__name__ and \ diff --git a/tests/py3-ignores.txt b/tests/py3-ignores.txt index d1831c266..e2254b77e 100644 --- a/tests/py3-ignores.txt +++ b/tests/py3-ignores.txt @@ -69,7 +69,6 @@ tests/test_utils_request.py tests/test_utils_response.py tests/test_utils_serialize.py tests/test_utils_signal.py -tests/test_utils_spider.py tests/test_utils_template.py tests/test_utils_url.py tests/test_webclient.py diff --git a/tests/test_utils_spider.py b/tests/test_utils_spider.py index 405b36715..334ec00f3 100644 --- a/tests/test_utils_spider.py +++ b/tests/test_utils_spider.py @@ -30,7 +30,7 @@ class UtilsSpidersTestCase(unittest.TestCase): def test_iter_spider_classes(self): import tests.test_utils_spider it = iter_spider_classes(tests.test_utils_spider) - self.assertEqual(set(it), set([MySpider1, MySpider2])) + self.assertEqual(set(it), {MySpider1, MySpider2}) if __name__ == "__main__": unittest.main()