diff options
| author | David Lord <davidism@gmail.com> | 2020-10-26 16:49:13 -0700 |
|---|---|---|
| committer | David Lord <davidism@gmail.com> | 2020-10-26 16:49:13 -0700 |
| commit | 5cc1e1c60d3f7a4140069147cf191c6da8de9dce (patch) | |
| tree | f627a156822208bac95c111867bbe4edec319332 /tests/conftest.py | |
| parent | 47bf15d663ccff521d48f4809bb6e4d690231798 (diff) | |
| download | werkzeug-test-dev-server.tar.gz | |
only use http.clienttest-dev-server
Diffstat (limited to 'tests/conftest.py')
| -rw-r--r-- | tests/conftest.py | 43 |
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}" |
