diff --git a/src/mock_vws/_requests_mock_server/decorators.py b/src/mock_vws/_requests_mock_server/decorators.py index 26a0b7967..ae699a3a1 100644 --- a/src/mock_vws/_requests_mock_server/decorators.py +++ b/src/mock_vws/_requests_mock_server/decorators.py @@ -167,23 +167,25 @@ def wrapped( # requests allows timeout as a (connect, read) # tuple. The delay simulates server response # time, so compare against the read timeout. - if isinstance(timeout, tuple): - timeout = timeout[1] - effective: float | None = None - if isinstance(timeout, (int, float)): - effective = float(timeout) + match timeout: + case (_, int() | float() as read_timeout): + effective: float | None = float(read_timeout) + case int() | float(): + effective = float(timeout) + case _: + effective = None if effective is not None and delay_seconds > effective: sleep_fn(effective) raise requests.exceptions.Timeout - raw_body = request.body - if raw_body is None: - body_bytes = b"" - elif isinstance(raw_body, str): - body_bytes = raw_body.encode(encoding="utf-8") - else: - body_bytes = raw_body + match request.body: + case None: + body_bytes = b"" + case str() as raw_body: + body_bytes = raw_body.encode(encoding="utf-8") + case _: + body_bytes = request.body path = request.path_url if base_path and path.startswith(base_path):