diff options
author | Gabriel Falcão <gabrielfalcao@users.noreply.github.com> | 2021-05-14 01:55:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-14 01:55:50 +0200 |
commit | 4fdae2de601b9b0f0ea5f44ef1d83509767c0756 (patch) | |
tree | b2aa295803e83d8ffecde3da5cedd1f09078bad5 | |
parent | f5ca4d464e8baadad27512f3b91f702023096a54 (diff) | |
download | httpretty-4fdae2de601b9b0f0ea5f44ef1d83509767c0756.tar.gz |
fix for #387 (#424)
-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"}) |