locust 2.46.8.dev43__tar.gz → 2.46.8.dev50__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/PKG-INFO +1 -1
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/_version.py +2 -2
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/event.py +2 -4
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/runners.py +1 -1
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/user/users.py +2 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/.gitignore +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/LICENSE +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/README.md +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/hatch_build.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/__init__.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/__main__.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/argument_parser.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/clients.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/__init__.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/csv_request_logger.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/dns.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/fasthttp.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/milvus.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/mongodb.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/mqtt.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/oai.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/postgres.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/qdrant.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/contrib/socketio.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/debug.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/dispatch.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/env.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/exception.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/html.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/input_events.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/log.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/main.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/opentelemetry.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/py.typed +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/rpc/__init__.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/rpc/protocol.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/shape.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/stats.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/user/__init__.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/user/inspectuser.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/user/markov_taskset.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/user/sequential_taskset.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/user/task.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/user/wait_time.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/__init__.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/cache.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/date.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/deprecation.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/directory.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/exception_handler.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/load_locustfile.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/rounding.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/timespan.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/util/url.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/web.py +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/assets/graphs-dark.png +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/assets/graphs-light.png +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/assets/src-pSlzKFX1.js +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/assets/terminal.gif +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/assets/testruns-dark.png +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/assets/testruns-light.png +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/auth.html +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/index.html +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/locust/webui/dist/report.html +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/pyproject.toml +0 -0
- {locust-2.46.8.dev43 → locust-2.46.8.dev50}/pytest_locust/plugin.py +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '2.46.8.
|
|
22
|
-
__version_tuple__ = version_tuple = (2, 46, 8, '
|
|
21
|
+
__version__ = version = '2.46.8.dev50'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 46, 8, 'dev50')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -38,10 +38,8 @@ class EventHook:
|
|
|
38
38
|
self._handlers.remove(handler)
|
|
39
39
|
|
|
40
40
|
def fire(self, *, reverse=False, **kwargs):
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
else:
|
|
44
|
-
handlers = self._handlers
|
|
41
|
+
# iterate over a copy, so that listeners can add or remove listeners while the event is firing
|
|
42
|
+
handlers = self._handlers[::-1] if reverse else self._handlers.copy()
|
|
45
43
|
for handler in handlers:
|
|
46
44
|
try:
|
|
47
45
|
handler(**kwargs)
|
|
@@ -71,7 +71,7 @@ def locust_exception_handler(environment: Environment):
|
|
|
71
71
|
if greenlet.exc_info[0] is StopTest:
|
|
72
72
|
logger.error(greenlet.exc_info[1])
|
|
73
73
|
logger.warning("Stopping Locust...")
|
|
74
|
-
if environment.parsed_options.headless:
|
|
74
|
+
if environment.parsed_options and environment.parsed_options.headless:
|
|
75
75
|
environment.runner.quit()
|
|
76
76
|
else:
|
|
77
77
|
environment.runner.stop()
|
|
@@ -167,6 +167,8 @@ class User(metaclass=UserMeta):
|
|
|
167
167
|
except Exception as e:
|
|
168
168
|
# unhandled exceptions inside tasks are logged in TaskSet.run, but since we're not yet there...
|
|
169
169
|
logger.error("%s\n%s", e, traceback.format_exc())
|
|
170
|
+
if not isinstance(e, (StopUser, StopTest)):
|
|
171
|
+
self.environment.events.user_error.fire(user_instance=self, exception=e, tb=e.__traceback__)
|
|
170
172
|
raise
|
|
171
173
|
|
|
172
174
|
self._taskset_instance.run()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|