locust 2.46.8.dev30__tar.gz → 2.46.8.dev32__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.dev30 → locust-2.46.8.dev32}/PKG-INFO +1 -1
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/_version.py +2 -2
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/argument_parser.py +3 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/dispatch.py +3 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/web.py +8 -1
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/.gitignore +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/LICENSE +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/README.md +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/hatch_build.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/__init__.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/__main__.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/clients.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/__init__.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/csv_request_logger.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/dns.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/fasthttp.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/milvus.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/mongodb.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/mqtt.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/oai.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/postgres.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/qdrant.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/socketio.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/debug.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/env.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/event.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/exception.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/html.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/input_events.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/log.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/main.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/opentelemetry.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/py.typed +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/rpc/__init__.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/rpc/protocol.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/runners.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/shape.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/stats.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/__init__.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/inspectuser.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/markov_taskset.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/sequential_taskset.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/task.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/users.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/wait_time.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/__init__.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/cache.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/date.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/deprecation.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/directory.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/exception_handler.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/load_locustfile.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/rounding.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/timespan.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/url.py +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/graphs-dark.png +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/graphs-light.png +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/src-pSlzKFX1.js +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/terminal.gif +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/testruns-dark.png +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/testruns-light.png +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/auth.html +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/index.html +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/report.html +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/pyproject.toml +0 -0
- {locust-2.46.8.dev30 → locust-2.46.8.dev32}/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.dev32'
|
|
22
|
+
__version_tuple__ = version_tuple = (2, 46, 8, 'dev32')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -9,6 +9,7 @@ import ast
|
|
|
9
9
|
import atexit
|
|
10
10
|
import difflib
|
|
11
11
|
import json
|
|
12
|
+
import math
|
|
12
13
|
import os
|
|
13
14
|
import platform
|
|
14
15
|
import socket
|
|
@@ -431,6 +432,8 @@ def positive_integer(string) -> int:
|
|
|
431
432
|
def gt_zero(t):
|
|
432
433
|
def checker(value):
|
|
433
434
|
v = t(value)
|
|
435
|
+
if not math.isfinite(v):
|
|
436
|
+
raise argparse.ArgumentTypeError("must be a finite number")
|
|
434
437
|
if v <= 0:
|
|
435
438
|
raise argparse.ArgumentTypeError("must be > 0")
|
|
436
439
|
return v
|
|
@@ -198,6 +198,9 @@ class UsersDispatcher(Iterator):
|
|
|
198
198
|
if spawn_rate <= 0:
|
|
199
199
|
raise ValueError(f"spawn_rate must be > 0, got {spawn_rate}")
|
|
200
200
|
|
|
201
|
+
if not math.isfinite(spawn_rate):
|
|
202
|
+
raise ValueError(f"spawn_rate must be a finite number, got {spawn_rate}")
|
|
203
|
+
|
|
201
204
|
if user_classes is not None and self._user_classes != sorted(user_classes, key=attrgetter("__name__")):
|
|
202
205
|
self._user_classes = sorted(user_classes, key=attrgetter("__name__"))
|
|
203
206
|
self._user_generator = self._user_gen()
|
|
@@ -4,6 +4,7 @@ import csv
|
|
|
4
4
|
import itertools
|
|
5
5
|
import json
|
|
6
6
|
import logging
|
|
7
|
+
import math
|
|
7
8
|
import mimetypes
|
|
8
9
|
import os.path
|
|
9
10
|
from functools import wraps
|
|
@@ -340,7 +341,13 @@ class WebUI:
|
|
|
340
341
|
self._cancel_run_time_timer()
|
|
341
342
|
|
|
342
343
|
if environment.runner is not None:
|
|
343
|
-
if
|
|
344
|
+
if (
|
|
345
|
+
user_count is None
|
|
346
|
+
or user_count < 0
|
|
347
|
+
or spawn_rate is None
|
|
348
|
+
or spawn_rate <= 0
|
|
349
|
+
or not math.isfinite(spawn_rate)
|
|
350
|
+
):
|
|
344
351
|
err_msg = "Missing or invalid user_count or spawn_rate from /swarm request"
|
|
345
352
|
logger.error(err_msg)
|
|
346
353
|
return jsonify({"success": False, "message": err_msg, "host": environment.host})
|
|
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
|