diff options
-rw-r--r-- | httpretty/core.py | 2 | ||||
-rw-r--r-- | tests/functional/bugfixes/test_387_regex_port.py | 26 |
2 files changed, 27 insertions, 1 deletions
diff --git a/httpretty/core.py b/httpretty/core.py index b4ebfe1..28c001c 100644 --- a/httpretty/core.py +++ b/httpretty/core.py @@ -1569,7 +1569,7 @@ class httpretty(HttpBaseClass): """ uri_is_string = isinstance(uri, str) - if uri_is_string and re.search(r'^\w+://[^/]+[.]\w{2,}$', uri): + if uri_is_string and re.search(r'^\w+://[^/]+[.]\w{2,}(:[0-9]+)?$', uri): uri += '/' if isinstance(responses, list) and len(responses) > 0: diff --git a/tests/functional/bugfixes/test_387_regex_port.py b/tests/functional/bugfixes/test_387_regex_port.py new file mode 100644 index 0000000..c3f90cd --- /dev/null +++ b/tests/functional/bugfixes/test_387_regex_port.py @@ -0,0 +1,26 @@ +# based on the snippet from https://github.com/gabrielfalcao/HTTPretty/issues/387 + +import httpretty +import requests +from sure import expect + +@httpretty.activate(allow_net_connect=False, verbose=True) +def test_match_with_port_no_slashes(): + "Reproduce #387 registering host:port without trailing slash" + httpretty.register_uri(httpretty.GET, 'http://fakeuri.com:8080', body='{"hello":"world"}') + req = requests.get('http://fakeuri.com:8080', timeout=1) + expect(req.status_code).to.equal(200) + expect(req.json()).to.equal({"hello": "world"}) + + +@httpretty.activate(allow_net_connect=False, verbose=True) +def test_match_with_port_trailing_slash(): + "Reproduce #387 registering host:port with trailing slash" + httpretty.register_uri(httpretty.GET, 'https://fakeuri.com:443/', body='{"hello":"world"}') + req = requests.get('https://fakeuri.com:443', timeout=1) + expect(req.status_code).to.equal(200) + expect(req.json()).to.equal({"hello": "world"}) + + req = requests.get('https://fakeuri.com:443/', timeout=1) + expect(req.status_code).to.equal(200) + expect(req.json()).to.equal({"hello": "world"}) |