Skip to content

Commit 68ff91a

Browse files
committed
HTTPServer: fix missing query_string parameter
Fix the missing query_string parameter which was added later to the matcher so it was accidentally missing from the HTTPServer.
1 parent cc5d28c commit 68ff91a

1 file changed

Lines changed: 23 additions & 4 deletions

File tree

pytest_httpserver/httpserver.py

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
from werkzeug.wrappers import Request, Response
66
from werkzeug.serving import make_server
7+
from typing import Mapping, Optional, Union
8+
79

810
URI_DEFAULT = ""
911
METHOD_ALL = "__ALL"
@@ -200,7 +202,16 @@ def create_matcher(self, *args, **kwargs) -> RequestMatcher:
200202

201203
return RequestMatcher(*args, **kwargs)
202204

203-
def expect_oneshot_request(self, uri, method=METHOD_ALL, data=None, data_encoding="utf-8", headers=None, *, ordered=False) -> RequestHandler:
205+
def expect_oneshot_request(
206+
self,
207+
uri: str,
208+
method: str = METHOD_ALL,
209+
data: Union[str, bytes, None] = None,
210+
data_encoding: str = "utf-8",
211+
headers: Optional[Mapping[str, str]] = None,
212+
query_string: Optional[str] = None,
213+
*,
214+
ordered=False) -> RequestHandler:
204215
"""
205216
Create and register a oneshot request handler.
206217
@@ -221,12 +232,13 @@ def expect_oneshot_request(self, uri, method=METHOD_ALL, data=None, data_encodin
221232
by default, see `data_encoding`) or a bytes object.
222233
:param data_encoding: the encoding used for data parameter if data is a string.
223234
:param headers: dictionary of the headers of the request to be matched
235+
:param query_string: the http query string starting with ``?``, such as ``?username=user``
224236
:param ordered: specifies whether to create an ordered handler or not. See above for details.
225237
226238
:return: Created and register :py:class:`RequestHandler`.
227239
"""
228240

229-
matcher = self.create_matcher(uri, method=method, data=data, data_encoding=data_encoding, headers=headers)
241+
matcher = self.create_matcher(uri, method=method, data=data, data_encoding=data_encoding, headers=headers, query_string=query_string)
230242
request_handler = RequestHandler(matcher)
231243
if ordered:
232244
self.ordered_handlers.append(request_handler)
@@ -235,7 +247,14 @@ def expect_oneshot_request(self, uri, method=METHOD_ALL, data=None, data_encodin
235247

236248
return request_handler
237249

238-
def expect_request(self, uri, method=METHOD_ALL, data=None, data_encoding="utf-8", headers=None) -> RequestHandler:
250+
def expect_request(
251+
self,
252+
uri: str,
253+
method: str = METHOD_ALL,
254+
data: Union[str, bytes, None] = None,
255+
data_encoding: str = "utf-8",
256+
headers: Optional[Mapping[str, str]] = None,
257+
query_string: Optional[str] = None) -> RequestHandler:
239258
"""
240259
Create and register a permanent request handler.
241260
@@ -254,7 +273,7 @@ def expect_request(self, uri, method=METHOD_ALL, data=None, data_encoding="utf-8
254273
:return: Created and register :py:class:`RequestHandler`.
255274
"""
256275

257-
matcher = self.create_matcher(uri, method=method, data=data, data_encoding=data_encoding, headers=headers)
276+
matcher = self.create_matcher(uri, method=method, data=data, data_encoding=data_encoding, headers=headers, query_string=query_string)
258277
request_handler = RequestHandler(matcher)
259278
self.handlers.append(request_handler)
260279
return request_handler

0 commit comments

Comments
 (0)