bpo-33034: Improve exception message when cast fails for {Parse,Split}Result.port (GH-6078)
This commit is contained in:
parent
7389fd935c
commit
2cb4661707
|
@ -936,6 +936,16 @@ class UrlParseTestCase(unittest.TestCase):
|
|||
self.assertEqual(p2.scheme, 'tel')
|
||||
self.assertEqual(p2.path, '+31641044153')
|
||||
|
||||
def test_port_casting_failure_message(self):
|
||||
message = "Port could not be cast to integer value as 'oracle'"
|
||||
p1 = urllib.parse.urlparse('http://Server=sde; Service=sde:oracle')
|
||||
with self.assertRaisesRegex(ValueError, message):
|
||||
p1.port
|
||||
|
||||
p2 = urllib.parse.urlsplit('http://Server=sde; Service=sde:oracle')
|
||||
with self.assertRaisesRegex(ValueError, message):
|
||||
p2.port
|
||||
|
||||
def test_telurl_params(self):
|
||||
p1 = urllib.parse.urlparse('tel:123-4;phone-context=+1-650-516')
|
||||
self.assertEqual(p1.scheme, 'tel')
|
||||
|
|
|
@ -166,7 +166,11 @@ class _NetlocResultMixinBase(object):
|
|||
def port(self):
|
||||
port = self._hostinfo[1]
|
||||
if port is not None:
|
||||
port = int(port, 10)
|
||||
try:
|
||||
port = int(port, 10)
|
||||
except ValueError:
|
||||
message = f'Port could not be cast to integer value as {port!r}'
|
||||
raise ValueError(message) from None
|
||||
if not ( 0 <= port <= 65535):
|
||||
raise ValueError("Port out of range 0-65535")
|
||||
return port
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
Providing an explicit error message when casting the port property to anything
|
||||
that is not an integer value using ``urlparse()`` and ``urlsplit()``.
|
||||
Patch by Matt Eaton.
|
Loading…
Reference in New Issue