bpo-30713: Reject newline in urllib.parse by vstinner · Pull Request #2301 · python/cpython
# bpo-30713: The newline character U+000A is invalid in URLs for url in ( '\ntype:string', 'ty\npe:string', 'type:str\ning', 'type:string\n', ): self.assertEqual(splittype(url), (None, url))
def test_splithost(self): splithost = urllib.parse.splithost self.assertEqual(splithost('//www.example.org:80/foo/bar/baz.html'),
# bpo-30713: The newline character U+000A is invalid in URLs for url in ( '\n//hostname/url', '//host\nname/url', '//hostname/u\nrl', '//hostname/url\n', ): self.assertEqual(splithost(url), (None, url))
def test_splituser(self): splituser = urllib.parse.splituser self.assertEqual(splituser('User:Pass@www.python.org:080'),
# bpo-30713: The newline character U+000A is invalid in URLs for url in ( '\nparrot:88', 'par\nrot:88', 'parrot:8\n8', 'parrot:88\n', ): self.assertEqual(splitport(url), (url, None))
def test_splitnport(self): splitnport = urllib.parse.splitnport self.assertEqual(splitnport('parrot:88'), ('parrot', 88))