locust 2.41.7.dev9__tar.gz → 2.41.7.dev14__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 (66) hide show
  1. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/PKG-INFO +4 -2
  2. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/_version.py +2 -2
  3. locust-2.41.7.dev14/locust/contrib/dns.py +50 -0
  4. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/pyproject.toml +3 -1
  5. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/.gitignore +0 -0
  6. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/LICENSE +0 -0
  7. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/README.md +0 -0
  8. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/hatch_build.py +0 -0
  9. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/__init__.py +0 -0
  10. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/__main__.py +0 -0
  11. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/argument_parser.py +0 -0
  12. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/clients.py +0 -0
  13. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/contrib/__init__.py +0 -0
  14. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/contrib/fasthttp.py +0 -0
  15. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/contrib/milvus.py +0 -0
  16. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/contrib/mongodb.py +0 -0
  17. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/contrib/mqtt.py +0 -0
  18. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/contrib/oai.py +0 -0
  19. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/contrib/postgres.py +0 -0
  20. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/contrib/socketio.py +0 -0
  21. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/debug.py +0 -0
  22. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/dispatch.py +0 -0
  23. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/env.py +0 -0
  24. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/event.py +0 -0
  25. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/exception.py +0 -0
  26. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/html.py +0 -0
  27. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/input_events.py +0 -0
  28. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/log.py +0 -0
  29. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/main.py +0 -0
  30. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/py.typed +0 -0
  31. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/rpc/__init__.py +0 -0
  32. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/rpc/protocol.py +0 -0
  33. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/rpc/zmqrpc.py +0 -0
  34. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/runners.py +0 -0
  35. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/shape.py +0 -0
  36. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/stats.py +0 -0
  37. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/user/__init__.py +0 -0
  38. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/user/inspectuser.py +0 -0
  39. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/user/markov_taskset.py +0 -0
  40. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/user/sequential_taskset.py +0 -0
  41. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/user/task.py +0 -0
  42. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/user/users.py +0 -0
  43. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/user/wait_time.py +0 -0
  44. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/__init__.py +0 -0
  45. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/cache.py +0 -0
  46. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/date.py +0 -0
  47. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/deprecation.py +0 -0
  48. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/directory.py +0 -0
  49. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/exception_handler.py +0 -0
  50. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/load_locustfile.py +0 -0
  51. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/rounding.py +0 -0
  52. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/timespan.py +0 -0
  53. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/util/url.py +0 -0
  54. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/web.py +0 -0
  55. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/assets/favicon-dark.png +0 -0
  56. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/assets/favicon-light.png +0 -0
  57. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/assets/graphs-dark.png +0 -0
  58. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/assets/graphs-light.png +0 -0
  59. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/assets/index-Bk5WNA9e.js +0 -0
  60. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/assets/terminal.gif +0 -0
  61. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/assets/testruns-dark.png +0 -0
  62. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/assets/testruns-light.png +0 -0
  63. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/auth.html +0 -0
  64. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/index.html +0 -0
  65. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/locust/webui/dist/report.html +0 -0
  66. {locust-2.41.7.dev9 → locust-2.41.7.dev14}/pytest_locust/plugin.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: locust
3
- Version: 2.41.7.dev9
3
+ Version: 2.41.7.dev14
4
4
  Summary: Developer-friendly load testing framework
5
5
  Project-URL: homepage, https://locust.io/
6
6
  Project-URL: repository, https://github.com/locustio/locust
@@ -39,11 +39,13 @@ Requires-Dist: python-engineio>=4.12.2
39
39
  Requires-Dist: python-socketio[client]>=5.13.0
40
40
  Requires-Dist: pywin32; sys_platform == 'win32'
41
41
  Requires-Dist: pyzmq>=25.0.0
42
- Requires-Dist: requests>=2.32.2
42
+ Requires-Dist: requests<2.32.5,>=2.32.2
43
43
  Requires-Dist: setuptools>=70.0.0
44
44
  Requires-Dist: tomli>=1.1.0; python_version < '3.11'
45
45
  Requires-Dist: typing-extensions>=4.6.0; python_version < '3.12'
46
46
  Requires-Dist: werkzeug>=2.0.0
47
+ Provides-Extra: dns
48
+ Requires-Dist: dnspython>=2.8.0; extra == 'dns'
47
49
  Provides-Extra: milvus
48
50
  Requires-Dist: pymilvus>=2.5.0; extra == 'milvus'
49
51
  Provides-Extra: mqtt
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '2.41.7.dev9'
32
- __version_tuple__ = version_tuple = (2, 41, 7, 'dev9')
31
+ __version__ = version = '2.41.7.dev14'
32
+ __version_tuple__ = version_tuple = (2, 41, 7, 'dev14')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -0,0 +1,50 @@
1
+ from locust import User
2
+ from locust.exception import LocustError
3
+
4
+ import time
5
+ from collections.abc import Callable
6
+
7
+ import dns.query
8
+ from dns.exception import DNSException
9
+ from dns.message import Message
10
+
11
+
12
+ class DNSClient:
13
+ def __init__(self, request_event):
14
+ self.request_event = request_event
15
+
16
+ def __getattr__(self, function_name) -> Callable[..., Message]:
17
+ func = getattr(dns.query, function_name)
18
+
19
+ def wrapper(message: Message, *args, name=None, **kwargs) -> Message:
20
+ response = None
21
+ request_meta = {
22
+ "request_type": "DNS",
23
+ "name": name or function_name,
24
+ "start_time": time.time(),
25
+ "response_length": 0,
26
+ "context": {},
27
+ "exception": None,
28
+ }
29
+ start_perf_counter = time.perf_counter()
30
+ try:
31
+ response = func(message, *args, **kwargs)
32
+ except DNSException as e:
33
+ request_meta["exception"] = e
34
+ else:
35
+ if not response.answer:
36
+ request_meta["exception"] = LocustError("No answer in DNS response")
37
+ request_meta["response_time"] = (time.perf_counter() - start_perf_counter) * 1000
38
+ request_meta["response"] = response
39
+ self.request_event.fire(**request_meta)
40
+ return response
41
+
42
+ return wrapper # for some reason, pyright still wont infer the return type to be Message
43
+
44
+
45
+ class DNSUser(User):
46
+ abstract = True
47
+
48
+ def __init__(self, environment):
49
+ super().__init__(environment)
50
+ self.client = DNSClient(environment.events.request)
@@ -35,7 +35,7 @@ classifiers = [
35
35
  dependencies = [
36
36
  "flask>=2.0.0",
37
37
  "Werkzeug>=2.0.0",
38
- "requests>=2.32.2",
38
+ "requests>=2.32.2,<2.32.5",
39
39
  "msgpack>=1.0.0",
40
40
  "pyzmq>=25.0.0",
41
41
  "geventhttpclient>=2.3.1",
@@ -57,6 +57,7 @@ dependencies = [
57
57
  [project.optional-dependencies]
58
58
  milvus = ["pymilvus>=2.5.0"]
59
59
  mqtt = ["paho-mqtt>=2.1.0"]
60
+ dns = ["dnspython>=2.8.0"]
60
61
 
61
62
  [project.urls]
62
63
  homepage = "https://locust.io/"
@@ -107,6 +108,7 @@ docs = [
107
108
  ]
108
109
  milvus = ["pymilvus>=2.5.0"]
109
110
  mqtt = ["paho-mqtt>=2.1.0"]
111
+ dns = ["dnspython>=2.8.0"]
110
112
 
111
113
  [project.scripts]
112
114
  locust = "locust.main:main"
File without changes
File without changes
File without changes