Merge pull request #2865 from kirankoduru/2831-explicit-msg-for-scrapy-parse-callback

[MRG+1] Explicit message for scrapy parse callback
This commit is contained in:
Daniel Graña 2017-08-09 07:56:57 -03:00 committed by GitHub
commit d5f3543d77
2 changed files with 15 additions and 1 deletions

View File

@ -87,7 +87,7 @@ class Spider(object_ref):
return Request(url, dont_filter=True)
def parse(self, response):
raise NotImplementedError
raise NotImplementedError('{}.parse callback is not defined'.format(self.__class__.__name__))
@classmethod
def update_settings(cls, settings):

View File

@ -429,3 +429,17 @@ class DeprecationTest(unittest.TestCase):
self.assertEqual(len(requests), 1)
self.assertEqual(requests[0].url, 'http://example.com/foo')
self.assertEqual(len(w), 1)
class NoParseMethodSpiderTest(unittest.TestCase):
spider_class = Spider
def test_undefined_parse_method(self):
spider = self.spider_class('example.com')
text = b'Random text'
resp = TextResponse(url="http://www.example.com/random_url", body=text)
exc_msg = 'Spider.parse callback is not defined'
with self.assertRaisesRegexp(NotImplementedError, exc_msg):
spider.parse(resp)