From 25fbd5fb72ae8790cff9512878d302120e387e64 Mon Sep 17 00:00:00 2001 From: Anil Khatri Date: Sat, 31 Dec 2022 01:38:50 +0530 Subject: [PATCH] Fixed issue with port "0" returning None Conflict:adapt: 1.The content of "@@" is adapted 2.The line number is adapted Reference:https://github.com/urllib3/urllib3/pull/2864 --- src/urllib3/util/url.py | 2 +- test/test_util.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/urllib3/util/url.py b/src/urllib3/util/url.py index 8964cef..63166e8 100644 --- a/src/urllib3/util/url.py +++ b/src/urllib3/util/url.py @@ -63,7 +63,7 @@ IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT + "$") BRACELESS_IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT[2:-2] + "$") ZONE_ID_RE = re.compile("(" + ZONE_ID_PAT + r")\]$") -_HOST_PORT_PAT = ("^(%s|%s|%s)(?::0*([0-9]{0,5}))?$") % ( +_HOST_PORT_PAT = ("^(%s|%s|%s)(?::0*?(|0|[1-9][0-9]{0,4}))?$") % ( REG_NAME_PAT, IPV4_PAT, IPV6_ADDRZ_PAT, diff --git a/test/test_util.py b/test/test_util.py index f6c8b43..7d512f5 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -347,6 +347,13 @@ class TestUtil(object): url = parse_url("https://example.com:0000000000080") assert url.port == 80 + def test_parse_url_only_zeros(self): + url = parse_url("https://example.com:0") + assert url.port == 0 + + url = parse_url("https://example.com:000000000000") + assert url.port == 0 + def test_Url_str(self): U = Url("http", host="google.com") assert str(U) == U.url -- 2.27.0