1+ from __future__ import annotations
2+
13from queue import Empty
24from queue import Queue
3- from ssl import SSLContext
5+ from typing import TYPE_CHECKING
46from typing import Any
5- from typing import Dict
67from typing import Mapping
7- from typing import Optional
88from typing import Pattern
9- from typing import Union
10-
11- from werkzeug .wrappers import Request
12- from werkzeug .wrappers import Response
139
1410from pytest_httpserver .httpserver import METHOD_ALL
1511from pytest_httpserver .httpserver import UNDEFINED
1915from pytest_httpserver .httpserver import RequestHandlerBase
2016from pytest_httpserver .httpserver import URIPattern
2117
18+ if TYPE_CHECKING :
19+ from ssl import SSLContext
20+
21+ from werkzeug .wrappers import Request
22+ from werkzeug .wrappers import Response
23+
2224
2325class BlockingRequestHandler (RequestHandlerBase ):
2426 """
@@ -59,23 +61,23 @@ def __init__(
5961 self ,
6062 host = DEFAULT_LISTEN_HOST ,
6163 port = DEFAULT_LISTEN_PORT ,
62- ssl_context : Optional [ SSLContext ] = None ,
64+ ssl_context : SSLContext | None = None ,
6365 timeout : int = 30 ,
6466 ):
6567 super ().__init__ (host , port , ssl_context )
6668 self .timeout = timeout
6769 self .request_queue : Queue [Request ] = Queue ()
68- self .request_handlers : Dict [Request , Queue [BlockingRequestHandler ]] = {}
70+ self .request_handlers : dict [Request , Queue [BlockingRequestHandler ]] = {}
6971
7072 def assert_request (
7173 self ,
72- uri : Union [ str , URIPattern , Pattern [str ] ],
74+ uri : str | URIPattern | Pattern [str ],
7375 method : str = METHOD_ALL ,
74- data : Union [ str , bytes , None ] = None ,
76+ data : str | bytes | None = None ,
7577 data_encoding : str = "utf-8" ,
76- headers : Optional [ Mapping [str , str ]] = None ,
77- query_string : Union [ None , QueryMatcher , str , bytes , Mapping ] = None ,
78- header_value_matcher : Optional [ HeaderValueMatcher ] = None ,
78+ headers : Mapping [str , str ] | None = None ,
79+ query_string : None | QueryMatcher | str | bytes | Mapping = None ,
80+ header_value_matcher : HeaderValueMatcher | None = None ,
7981 json : Any = UNDEFINED ,
8082 timeout : int = 30 ,
8183 ) -> BlockingRequestHandler :
@@ -127,7 +129,7 @@ def assert_request(
127129 try :
128130 request = self .request_queue .get (timeout = timeout )
129131 except Empty :
130- raise AssertionError (f"Waiting for request { matcher } timed out" )
132+ raise AssertionError (f"Waiting for request { matcher } timed out" ) # noqa: EM102
131133
132134 diff = matcher .difference (request )
133135
@@ -137,7 +139,7 @@ def assert_request(
137139
138140 if diff :
139141 request_handler .respond_with_response (self .respond_nohandler (request ))
140- raise AssertionError (f"Request { matcher } does not match: { diff } " )
142+ raise AssertionError (f"Request { matcher } does not match: { diff } " ) # noqa: EM102
141143
142144 return request_handler
143145
0 commit comments