File python-vcrpy-fix-tunnel-uri-generation.patch of Package python-vcrpy

From a4e60d4bb10f49ec212ec89e9a632dc42e4fd477 Mon Sep 17 00:00:00 2001
From: "James E. King III" <jking@apache.org>
Date: Sat, 22 Dec 2018 17:21:25 +0000
Subject: [PATCH] properly handle tunnel connect uri generation broken in #389

---
 tests/unit/test_request.py | 25 ++++++++++++++++---------
 vcr/request.py             |  5 ++++-
 2 files changed, 20 insertions(+), 10 deletions(-)

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 @@
 from vcr.request import Request, HeadersDict
 
 
-def test_str():
-    req = Request('GET', 'http://www.google.com/', '', {})
-    str(req) == '<Request (GET) http://www.google.com/>'
+@pytest.mark.parametrize("method, uri, expected_str", [
+    ('GET', 'http://www.google.com/', '<Request (GET) http://www.google.com/>'),
+    ('OPTIONS', '*', '<Request (OPTIONS) *>'),
+    ('CONNECT', 'host.some.where:1234', '<Request (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 e268053..dfd6d46 100644
--- a/vcr/request.py
+++ b/vcr/request.py
@@ -58,7 +58,10 @@ def port(self):
         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
openSUSE Build Service is sponsored by