diff --git a/tests/unit/test_request.py b/tests/unit/test_request.py index dfd68d7..00793f8 100644 --- a/tests/unit/test_request.py +++ b/tests/unit/test_request.py @@ -3,9 +3,13 @@ import pytest from vcr.request import Request, HeadersDict -def test_str(): - req = Request('GET', 'http://www.google.com/', '', {}) - str(req) == '' +@pytest.mark.parametrize("method, uri, expected_str", [ + ('GET', 'http://www.google.com/', ''), + ('OPTIONS', '*', ''), + ('CONNECT', 'host.some.where:1234', '') +]) +def test_str(method, uri, expected_str): + assert str(Request(method, uri, '', {})) == expected_str def test_headers(): @@ -29,18 +33,21 @@ def test_add_header_deprecated(): ('https://go.com/', 443), ('https://go.com:443/', 443), ('https://go.com:3000/', 3000), + ('*', None) ]) def test_port(uri, expected_port): req = Request('GET', uri, '', {}) assert req.port == expected_port -def test_uri(): - req = Request('GET', 'http://go.com/', '', {}) - assert req.uri == 'http://go.com/' - - req = Request('GET', 'http://go.com:80/', '', {}) - assert req.uri == 'http://go.com:80/' +@pytest.mark.parametrize("method, uri", [ + ('GET', 'http://go.com/'), + ('GET', 'http://go.com:80/'), + ('CONNECT', 'localhost:1234'), + ('OPTIONS', '*') +]) +def test_uri(method, uri): + assert Request(method, uri, '', {}).uri == uri def test_HeadersDict(): diff --git a/vcr/request.py b/vcr/request.py index 09c83f4..b4b3f71 100644 --- a/vcr/request.py +++ b/vcr/request.py @@ -58,7 +58,10 @@ class Request(object): parse_uri = urlparse(self.uri) port = parse_uri.port if port is None: - port = {'https': 443, 'http': 80}[parse_uri.scheme] + try: + port = {'https': 443, 'http': 80}[parse_uri.scheme] + except KeyError: + pass return port @property