|
3 | 3 | from locust.event import EventHook |
4 | 4 |
|
5 | 5 | import re |
| 6 | +import sys |
6 | 7 | import time |
7 | 8 | from contextlib import contextmanager |
8 | 9 | from typing import TYPE_CHECKING, cast |
|
17 | 18 |
|
18 | 19 | from .exception import CatchResponseError, LocustError, ResponseError |
19 | 20 |
|
| 21 | +if sys.version_info >= (3, 12): |
| 22 | + from typing import override |
| 23 | +else: |
| 24 | + from typing_extensions import override |
| 25 | + |
| 26 | + |
20 | 27 | if TYPE_CHECKING: |
21 | | - import sys |
22 | 28 | from collections.abc import Callable, Generator, Iterable, Mapping, MutableMapping |
23 | 29 | from typing import Any, TypedDict |
24 | 30 |
|
@@ -177,6 +183,8 @@ def request( # type: ignore[override] |
177 | 183 | if self.request_name and not name: |
178 | 184 | name = self.request_name |
179 | 185 |
|
| 186 | + self.explicit_name = name |
| 187 | + |
180 | 188 | # prepend url with hostname unless it's already an absolute URL |
181 | 189 | complete_url = self._build_url(url) |
182 | 190 |
|
@@ -235,6 +243,13 @@ def _send_request_safe_mode(self, method, url, **kwargs) -> Response: |
235 | 243 | except RequestException as e: |
236 | 244 | return ResponseContextManager(e) # this is inconsistent, we should fix this some time |
237 | 245 |
|
| 246 | + @override |
| 247 | + def prepare_request(self, request) -> requests.PreparedRequest: |
| 248 | + prep = super().prepare_request(request) |
| 249 | + if self.explicit_name: |
| 250 | + prep._explicit_name = self.explicit_name # type: ignore |
| 251 | + return prep |
| 252 | + |
238 | 253 | def get( |
239 | 254 | self, url: str | bytes, *, data: Any = None, json: Any = None, **kwargs: Unpack[RESTKwargs] |
240 | 255 | ) -> ResponseContextManager: |
|
0 commit comments