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.
Files changed (69) hide show
  1. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/PKG-INFO +1 -1
  2. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/_version.py +2 -2
  3. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/argument_parser.py +3 -0
  4. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/dispatch.py +3 -0
  5. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/web.py +8 -1
  6. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/.gitignore +0 -0
  7. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/LICENSE +0 -0
  8. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/README.md +0 -0
  9. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/hatch_build.py +0 -0
  10. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/__init__.py +0 -0
  11. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/__main__.py +0 -0
  12. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/clients.py +0 -0
  13. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/__init__.py +0 -0
  14. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/csv_request_logger.py +0 -0
  15. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/dns.py +0 -0
  16. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/fasthttp.py +0 -0
  17. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/milvus.py +0 -0
  18. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/mongodb.py +0 -0
  19. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/mqtt.py +0 -0
  20. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/oai.py +0 -0
  21. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/postgres.py +0 -0
  22. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/qdrant.py +0 -0
  23. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/contrib/socketio.py +0 -0
  24. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/debug.py +0 -0
  25. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/env.py +0 -0
  26. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/event.py +0 -0
  27. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/exception.py +0 -0
  28. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/html.py +0 -0
  29. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/input_events.py +0 -0
  30. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/log.py +0 -0
  31. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/main.py +0 -0
  32. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/opentelemetry.py +0 -0
  33. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/py.typed +0 -0
  34. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/rpc/__init__.py +0 -0
  35. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/rpc/protocol.py +0 -0
  36. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/rpc/zmqrpc.py +0 -0
  37. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/runners.py +0 -0
  38. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/shape.py +0 -0
  39. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/stats.py +0 -0
  40. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/__init__.py +0 -0
  41. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/inspectuser.py +0 -0
  42. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/markov_taskset.py +0 -0
  43. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/sequential_taskset.py +0 -0
  44. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/task.py +0 -0
  45. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/users.py +0 -0
  46. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/user/wait_time.py +0 -0
  47. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/__init__.py +0 -0
  48. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/cache.py +0 -0
  49. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/date.py +0 -0
  50. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/deprecation.py +0 -0
  51. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/directory.py +0 -0
  52. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/exception_handler.py +0 -0
  53. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/load_locustfile.py +0 -0
  54. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/rounding.py +0 -0
  55. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/timespan.py +0 -0
  56. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/util/url.py +0 -0
  57. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/favicon-dark.png +0 -0
  58. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/favicon-light.png +0 -0
  59. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/graphs-dark.png +0 -0
  60. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/graphs-light.png +0 -0
  61. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/src-pSlzKFX1.js +0 -0
  62. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/terminal.gif +0 -0
  63. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/testruns-dark.png +0 -0
  64. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/assets/testruns-light.png +0 -0
  65. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/auth.html +0 -0
  66. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/index.html +0 -0
  67. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/locust/webui/dist/report.html +0 -0
  68. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/pyproject.toml +0 -0
  69. {locust-2.46.8.dev30 → locust-2.46.8.dev32}/pytest_locust/plugin.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: locust
3
- Version: 2.46.8.dev30
3
+ Version: 2.46.8.dev32
4
4
  Summary: Developer-friendly load testing framework
5
5
  Project-URL: Homepage, https://locust.cloud/
6
6
  Project-URL: Repository, https://github.com/locustio/locust
@@ -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.dev30'
22
- __version_tuple__ = version_tuple = (2, 46, 8, 'dev30')
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 user_count is None or user_count < 0 or spawn_rate is None or spawn_rate <= 0:
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