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