Merge pull request #4170 from mabelvj/4133-handle-start_url

Raise error when start_url found instead of start_urls.
This commit is contained in:
Mikhail Korobov 2019-12-05 17:47:03 +05:00 committed by GitHub
commit 250da28952
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

@ -57,6 +57,11 @@ class Spider(object_ref):
def start_requests(self):
cls = self.__class__
if not self.start_urls and hasattr(self, 'start_url'):
raise AttributeError(
"Crawling could not start: 'start_urls' not found "
"or empty (but found 'start_url' attribute instead, "
"did you miss an 's'?)")
if method_is_overridden(cls, Spider, 'make_requests_from_url'):
warnings.warn(
"Spider.make_requests_from_url method is deprecated; it "

View File

@ -384,6 +384,14 @@ class CrawlSpiderTest(SpiderTest):
self.assertTrue(hasattr(spider, '_follow_links'))
self.assertFalse(spider._follow_links)
def test_start_url(self):
spider = self.spider_class("example.com")
spider.start_url = 'https://www.example.com'
with self.assertRaisesRegex(AttributeError,
r'^Crawling could not start.*$'):
list(spider.start_requests())
class SitemapSpiderTest(SpiderTest):