1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-22 23:24:11 +00:00

Merge pull request #4094 from victor-torres/invalid-url

Improve URL schema validation on scrapy.Request initialization
This commit is contained in:
Andrey Rahmatullin 2019-11-19 13:50:08 +05:00 committed by GitHub
commit 25cd7ac7ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 1 deletions

View File

@ -66,7 +66,7 @@ class Request(object_ref):
s = safe_url_string(url, self.encoding) s = safe_url_string(url, self.encoding)
self._url = escape_ajax(s) self._url = escape_ajax(s)
if ':' not in self._url: if ('://' not in self._url) and (not self._url.startswith('data:')):
raise ValueError('Missing scheme in request url: %s' % self._url) raise ValueError('Missing scheme in request url: %s' % self._url)
url = property(_get_url, obsolete_setter(_set_url, 'url')) url = property(_get_url, obsolete_setter(_set_url, 'url'))

View File

@ -49,6 +49,8 @@ class RequestTest(unittest.TestCase):
def test_url_no_scheme(self): def test_url_no_scheme(self):
self.assertRaises(ValueError, self.request_class, 'foo') self.assertRaises(ValueError, self.request_class, 'foo')
self.assertRaises(ValueError, self.request_class, '/foo/')
self.assertRaises(ValueError, self.request_class, '/foo:bar')
def test_headers(self): def test_headers(self):
# Different ways of setting headers attribute # Different ways of setting headers attribute