summaryrefslogtreecommitdiff
path: root/tests/conftest.py
diff options
context:
space:
mode:
authorDavid Lord <davidism@gmail.com>2020-10-26 16:49:13 -0700
committerDavid Lord <davidism@gmail.com>2020-10-26 16:49:13 -0700
commit5cc1e1c60d3f7a4140069147cf191c6da8de9dce (patch)
treef627a156822208bac95c111867bbe4edec319332 /tests/conftest.py
parent47bf15d663ccff521d48f4809bb6e4d690231798 (diff)
downloadwerkzeug-test-dev-server.tar.gz
only use http.clienttest-dev-server
Diffstat (limited to 'tests/conftest.py')
-rw-r--r--tests/conftest.py43
1 files changed, 10 insertions, 33 deletions
diff --git a/tests/conftest.py b/tests/conftest.py
index ab7943f5..e18533b7 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -4,11 +4,8 @@ import os
import socket
import ssl
import sys
-import urllib.error
-import urllib.request
from itertools import count
from pathlib import Path
-from pathlib import PurePath
import pytest
from xprocess import ProcessStarter
@@ -41,26 +38,7 @@ class UnixSocketHTTPConnection(http.client.HTTPConnection):
self.sock.connect(self.host)
-class UnixSocketHandler(urllib.request.AbstractHTTPHandler):
- def unix_request(self, req):
- h = s = PurePath(req.selector)
-
- while not h.suffix == ".sock":
- h = h.parent
-
- req.host = str(h)
- req.selector = f"/{s.relative_to(h)}" if s != h else "/"
- return self.do_request_(req)
-
- def unix_open(self, req):
- return self.do_open(UnixSocketHTTPConnection, req)
-
-
class DevServerClient:
- opener = urllib.request.build_opener(
- UnixSocketHandler, urllib.request.HTTPSHandler(context=ssl.SSLContext())
- )
-
def __init__(self, kwargs):
host = kwargs.get("hostname", "127.0.0.1")
@@ -74,7 +52,7 @@ class DevServerClient:
self.addr = f"{host}:{port}"
self.url = f"{scheme}://{self.addr}"
else:
- self.addr = host[7:]
+ self.addr = host[7:] # strip "unix://"
self.url = host
self.log = None
@@ -97,17 +75,16 @@ class DevServerClient:
return http.client.HTTPConnection(self.addr, **kwargs)
- def open(self, path="", **kwargs):
- request = urllib.request.Request(f"{self.url}{path}", **kwargs)
+ def request(self, path="", **kwargs):
+ kwargs.setdefault("method", "GET")
+ kwargs.setdefault("url", path)
+ conn = self.connect()
+ conn.request(**kwargs)
- try:
- with self.opener.open(request) as response:
- response.data = response.read()
- except urllib.error.HTTPError as e:
- response = e
+ with conn.getresponse() as response:
+ response.data = response.read()
- with response:
- response.data = response.read()
+ conn.close()
if response.headers.get("Content-Type", "").startswith("application/json"):
response.json = json.loads(response.data)
@@ -137,7 +114,7 @@ def dev_server(xprocess, request, tmp_path):
@cached_property
def pattern(self):
- client.open("/ensure")
+ client.request("/ensure")
return "GET /ensure"
xp_name = f"dev_server-{request.node.name}"