locust 2.26.1.dev7__py3-none-any.whl → 2.26.1.dev16__py3-none-any.whl
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/_version.py +2 -2
- locust/input_events.py +1 -1
- locust/main.py +3 -4
- locust/runners.py +1 -1
- locust/test/test_main.py +1 -1
- locust/test/test_runners.py +1 -1
- locust/test/test_stats.py +1 -1
- locust/util/timespan.py +2 -3
- locust/web.py +2 -2
- {locust-2.26.1.dev7.dist-info → locust-2.26.1.dev16.dist-info}/METADATA +2 -2
- {locust-2.26.1.dev7.dist-info → locust-2.26.1.dev16.dist-info}/RECORD +15 -15
- {locust-2.26.1.dev7.dist-info → locust-2.26.1.dev16.dist-info}/LICENSE +0 -0
- {locust-2.26.1.dev7.dist-info → locust-2.26.1.dev16.dist-info}/WHEEL +0 -0
- {locust-2.26.1.dev7.dist-info → locust-2.26.1.dev16.dist-info}/entry_points.txt +0 -0
- {locust-2.26.1.dev7.dist-info → locust-2.26.1.dev16.dist-info}/top_level.txt +0 -0
locust/_version.py
CHANGED
@@ -12,5 +12,5 @@ __version__: str
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
13
13
|
version_tuple: VERSION_TUPLE
|
14
14
|
|
15
|
-
__version__ = version = '2.26.1.
|
16
|
-
__version_tuple__ = version_tuple = (2, 26, 1, '
|
15
|
+
__version__ = version = '2.26.1.dev16'
|
16
|
+
__version_tuple__ = version_tuple = (2, 26, 1, 'dev16')
|
locust/input_events.py
CHANGED
@@ -56,7 +56,7 @@ class WindowsKeyPoller:
|
|
56
56
|
self.cur_keys_length = 0
|
57
57
|
self.captured_chars = []
|
58
58
|
except pywintypes.error:
|
59
|
-
raise InitError("Terminal says its a tty but we
|
59
|
+
raise InitError("Terminal says its a tty but we couldn't enable line input. Keyboard input disabled.")
|
60
60
|
else:
|
61
61
|
raise InitError("Terminal was not a tty. Keyboard input disabled")
|
62
62
|
|
locust/main.py
CHANGED
@@ -220,7 +220,7 @@ def main():
|
|
220
220
|
children.append(child_pid)
|
221
221
|
logging.debug(f"Started child worker with pid #{child_pid}")
|
222
222
|
else:
|
223
|
-
# child is always a worker, even when it
|
223
|
+
# child is always a worker, even when it wasn't set on command line
|
224
224
|
options.worker = True
|
225
225
|
# remove options that dont make sense on worker
|
226
226
|
options.run_time = None
|
@@ -286,7 +286,7 @@ def main():
|
|
286
286
|
exit_code = max(exit_code, child_exit_code)
|
287
287
|
if exit_code > 1:
|
288
288
|
logging.error(f"Bad response code from worker children: {exit_code}")
|
289
|
-
# ensure master
|
289
|
+
# ensure master doesn't finish until output from workers has arrived
|
290
290
|
# otherwise the terminal might look weird.
|
291
291
|
time.sleep(0.1)
|
292
292
|
|
@@ -433,8 +433,7 @@ See https://github.com/locustio/locust/wiki/Installation#increasing-maximum-numb
|
|
433
433
|
|
434
434
|
if options.run_time:
|
435
435
|
if options.worker:
|
436
|
-
logger.
|
437
|
-
sys.exit(1)
|
436
|
+
logger.info("--run-time specified for a worker node will be ignored.")
|
438
437
|
try:
|
439
438
|
options.run_time = parse_timespan(options.run_time)
|
440
439
|
except ValueError:
|
locust/runners.py
CHANGED
@@ -378,7 +378,7 @@ class Runner:
|
|
378
378
|
caller = inspect.getframeinfo(inspect.stack()[1][0])
|
379
379
|
logger.debug(f"Stopping all users (called from {caller.filename}:{caller.lineno})")
|
380
380
|
except Exception:
|
381
|
-
logger.debug("Stopping all users (
|
381
|
+
logger.debug("Stopping all users (couldn't determine where stop() was called from)")
|
382
382
|
self.environment.events.test_stopping.fire(environment=self.environment)
|
383
383
|
self.final_user_classes_count = {**self.user_classes_count}
|
384
384
|
self.update_state(STATE_CLEANUP)
|
locust/test/test_main.py
CHANGED
@@ -832,7 +832,7 @@ class StandaloneIntegrationTests(ProcessIntegrationTest):
|
|
832
832
|
def test_web_options(self):
|
833
833
|
port = get_free_tcp_port()
|
834
834
|
if platform.system() != "Darwin":
|
835
|
-
# MacOS only sets up the loopback interface for 127.0.0.1 and not for 127.*.*.*, so we
|
835
|
+
# MacOS only sets up the loopback interface for 127.0.0.1 and not for 127.*.*.*, so we can't test this
|
836
836
|
with mock_locustfile() as mocked:
|
837
837
|
proc = subprocess.Popen(
|
838
838
|
["locust", "-f", mocked.file_path, "--web-host", "127.0.0.2", "--web-port", str(port)],
|
locust/test/test_runners.py
CHANGED
@@ -3214,7 +3214,7 @@ class TestMasterRunner(LocustRunnerTestCase):
|
|
3214
3214
|
|
3215
3215
|
def test_worker_sends_unrecognized_message_to_master(self):
|
3216
3216
|
"""
|
3217
|
-
Validate master ignores message from worker when it cannot parse
|
3217
|
+
Validate master ignores message from worker when it cannot parse address info.
|
3218
3218
|
"""
|
3219
3219
|
|
3220
3220
|
class TestUser(User):
|
locust/test/test_stats.py
CHANGED
@@ -367,7 +367,7 @@ class TestStatsPrinting(LocustTestCase):
|
|
367
367
|
headlines = info[1].replace("# ", "#").split()
|
368
368
|
# check number of columns in headlines vs table ascii separator
|
369
369
|
self.assertEqual(len(headlines), len(info[2].split("|")))
|
370
|
-
# table ascii
|
370
|
+
# table ascii separators
|
371
371
|
self.assertEqual(info[2], info[-2])
|
372
372
|
|
373
373
|
|
locust/util/timespan.py
CHANGED
@@ -2,7 +2,7 @@ import re
|
|
2
2
|
from datetime import timedelta
|
3
3
|
|
4
4
|
|
5
|
-
def parse_timespan(time_str):
|
5
|
+
def parse_timespan(time_str) -> int:
|
6
6
|
"""
|
7
7
|
Parse a string representing a time span and return the number of seconds.
|
8
8
|
Valid formats are: 20, 20s, 3m, 2h, 1h20m, 3h30m10s, etc.
|
@@ -18,8 +18,7 @@ def parse_timespan(time_str):
|
|
18
18
|
parts = timespan_regex.match(time_str)
|
19
19
|
if not parts:
|
20
20
|
raise ValueError("Invalid time span format. Valid formats: 20, 20s, 3m, 2h, 1h20m, 3h30m10s, etc.")
|
21
|
-
|
22
|
-
time_params = {name: int(value) for name, value in parts.items() if value}
|
21
|
+
time_params = {name: int(value) for name, value in parts.groupdict().items() if value}
|
23
22
|
if not time_params:
|
24
23
|
raise ValueError("Invalid time span format. Valid formats: 20, 20s, 3m, 2h, 1h20m, 3h30m10s, etc.")
|
25
24
|
return int(timedelta(**time_params).total_seconds())
|
locust/web.py
CHANGED
@@ -104,7 +104,7 @@ class WebUI:
|
|
104
104
|
environment: Reference to the current Locust Environment
|
105
105
|
host: Host/interface that the web server should accept connections to
|
106
106
|
port: Port that the web server should listen to
|
107
|
-
web_login: Enables a login page
|
107
|
+
web_login: Enables a login page
|
108
108
|
tls_cert: A path to a TLS certificate
|
109
109
|
tls_key: A path to a TLS private key
|
110
110
|
delayed_start: Whether or not to delay starting web UI until `start()` is called. Delaying web UI start
|
@@ -147,7 +147,7 @@ class WebUI:
|
|
147
147
|
def handle_exception(error):
|
148
148
|
error_message = str(error)
|
149
149
|
logger.log(logging.CRITICAL, error_message)
|
150
|
-
return make_response(error_message, 500)
|
150
|
+
return make_response(error_message, getattr(error, "code", 500))
|
151
151
|
|
152
152
|
@app.route("/assets/<path:path>")
|
153
153
|
def send_assets(path):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: locust
|
3
|
-
Version: 2.26.1.
|
3
|
+
Version: 2.26.1.dev16
|
4
4
|
Summary: Developer friendly load testing framework
|
5
5
|
License: MIT
|
6
6
|
Project-URL: Homepage, https://github.com/locustio/locust
|
@@ -116,7 +116,7 @@ Locust's code base is intentionally kept small and doesn't solve everything out
|
|
116
116
|
## Authors
|
117
117
|
|
118
118
|
* Maintainer: [Lars Holmberg](https://github.com/cyberw)
|
119
|
-
*
|
119
|
+
* UI: [Andrew Baldwin](https://github.com/andrewbaldwin44)
|
120
120
|
* Original creator: [Jonatan Heyman](https://github.com/heyman)
|
121
121
|
* Massive thanks to [all of our contributors](https://github.com/locustio/locust/graphs/contributors)
|
122
122
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
locust/__init__.py,sha256=g6oA-Ba_hs3gLWVf5MKJ1mvfltI8MFnDWG8qslqm8yg,1402
|
2
2
|
locust/__main__.py,sha256=vBQ82334kX06ImDbFlPFgiBRiLIinwNk3z8Khs6hd74,31
|
3
|
-
locust/_version.py,sha256=
|
3
|
+
locust/_version.py,sha256=zATBBES6mVEiFZ2s2JJ69GRnNnIRImZ5L4UYyTaBPqo,428
|
4
4
|
locust/argument_parser.py,sha256=gOyB1rqEEFNVkhGa-oAuCxf573aB_lATSY9w6FlCbHk,32008
|
5
5
|
locust/clients.py,sha256=-vKHkTkUQwYUXUpuROvHdiAbSbOPY8s4V7xFDF5KU1A,14819
|
6
6
|
locust/debug.py,sha256=We6Z9W0btkKSc7PxWmrZx-xMynvOOsKhG6jmDgQin0g,5134
|
@@ -9,14 +9,14 @@ locust/env.py,sha256=nd6ui1bv6n-kkLkP3r61ZkskDY627dsKOAkYHhtOW7o,12472
|
|
9
9
|
locust/event.py,sha256=xgNKbcejxy1TNUfIdgV75KgD2_BOwQmvjrJ4hWuydRw,7740
|
10
10
|
locust/exception.py,sha256=jGgJ32ubuf4pWdlaVOkbh2Y0LlG0_DHi-lv3ib8ppOE,1791
|
11
11
|
locust/html.py,sha256=IrOYxmmowzcO96c9fytzR4U0lifTJyMTA7Rd96WOXkk,5708
|
12
|
-
locust/input_events.py,sha256=
|
12
|
+
locust/input_events.py,sha256=VQIrgXaoph3JgLo6REKtPBThEPUXYXG5Kcedly5aRYc,3272
|
13
13
|
locust/log.py,sha256=2IVp9YL4ZPfWdj3sBFuOHfgneg3g7m7tUGR-sy2s3E8,3155
|
14
|
-
locust/main.py,sha256=
|
14
|
+
locust/main.py,sha256=OEuiWI49TB3xfiyLh6G6-bnV3s11hSYNki173PSV4uw,28152
|
15
15
|
locust/py.typed,sha256=gkWLl8yD4mIZnNYYAIRM8g9VarLvWmTAFeUfEbxJLBw,65
|
16
|
-
locust/runners.py,sha256=
|
16
|
+
locust/runners.py,sha256=7qJE6cHETFEOo7kr0vo_PN3bdfOIw-fbKrc2aPPrjKw,67954
|
17
17
|
locust/shape.py,sha256=t-lwBS8LOjWcKXNL7j2U3zroIXJ1b0fazUwpRYQOKXw,1973
|
18
18
|
locust/stats.py,sha256=l2cxxVre8dvA4MIOD_ZKNj_fYySz5gTGC2f9Rc4-CL0,46134
|
19
|
-
locust/web.py,sha256=
|
19
|
+
locust/web.py,sha256=zj0Lm3tQq0MhbeJ1oKROnvauNibwUSBXsTehw2q2nAA,28251
|
20
20
|
locust/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
21
|
locust/contrib/fasthttp.py,sha256=B_VofSuvb9cehQxlUZnLVvYAr2AquedxeALua4mVOuM,26749
|
22
22
|
locust/rpc/__init__.py,sha256=nVGoHWFQxZjnhCDWjbgXIbmFbN9sizAjkhvSs9_642c,58
|
@@ -61,12 +61,12 @@ locust/test/test_interruptable_task.py,sha256=LZKSV-aJNnwfvAxguz6SckBEuGEnfGimoI
|
|
61
61
|
locust/test/test_load_locustfile.py,sha256=v-muHoM-CYu8t7DXm4AQtFP2q8RYfnTTUBqj7uVqhig,8494
|
62
62
|
locust/test/test_locust_class.py,sha256=oGhhOX848jHRQnIfFlhLlW-kHGYLyYsfDX8hM07Ro7g,25506
|
63
63
|
locust/test/test_log.py,sha256=YPY6vgTAy1KaNU2qoVvQrTH5x_mzRrljEHrkSBy3yxs,7553
|
64
|
-
locust/test/test_main.py,sha256=
|
64
|
+
locust/test/test_main.py,sha256=LOVES_hyNs9kftr9WYRIn6SrfeonAZC7lK4WWJHZOyM,83554
|
65
65
|
locust/test/test_old_wait_api.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
66
|
locust/test/test_parser.py,sha256=R2RATAHVC1n4gRYZyRD3yO5P9QMFbruZ3A4dwaw8Up0,18287
|
67
|
-
locust/test/test_runners.py,sha256=
|
67
|
+
locust/test/test_runners.py,sha256=6FPd-3Glp5_xtVIE8yCHDonM0aYJ0A6He5KSxuWOk34,159381
|
68
68
|
locust/test/test_sequential_taskset.py,sha256=QjVMWWfGHn9hU5AvPxRDU7Vo5DcVW1VkMVfDA0k9OPE,3398
|
69
|
-
locust/test/test_stats.py,sha256=
|
69
|
+
locust/test/test_stats.py,sha256=F51VkL3k3y4OhYBlRyV6vWzisenSAOmSWKy2IPVrnWM,33929
|
70
70
|
locust/test/test_tags.py,sha256=mzhGLPMizSnSItTHLHizYvloxDfuIDAOgelwInyrf28,13138
|
71
71
|
locust/test/test_taskratio.py,sha256=SQ-sBqeFm2GhkfCD_57-fPzQrk1ilSw3DRb0_nwyxAI,2742
|
72
72
|
locust/test/test_users.py,sha256=lp6yAKGK9_MIs9F7s1Vc3561P4oRavhpeVo2y9w3SUU,2135
|
@@ -88,16 +88,16 @@ locust/util/deprecation.py,sha256=pFipULkYFjYnuFSycJZ0s95r0CTSlvx8otGnqSu1bsQ,20
|
|
88
88
|
locust/util/exception_handler.py,sha256=jTMyBq2a0O07fRjmqGkheyaPj58tUgnbbcjoesKGPws,797
|
89
89
|
locust/util/load_locustfile.py,sha256=hn70KcIG8jHmZyuKv2pcEmwgWtOEu24Efeji1KRYNUE,2964
|
90
90
|
locust/util/rounding.py,sha256=5haxR8mKhATqag6WvPby-MSRRgIw5Ob6thbyvMYZM7o,92
|
91
|
-
locust/util/timespan.py,sha256=
|
91
|
+
locust/util/timespan.py,sha256=Y0LtnhUq2Mq19p04u0XtBlYQ_-S2cRvwRdgru8W9WhA,986
|
92
92
|
locust/webui/dist/auth.html,sha256=xDquX2awbYPO0FHo0SUTeylBjwbwUWpu2_blXKD0J5s,501
|
93
93
|
locust/webui/dist/index.html,sha256=7LG5sNTcH3Hu07hxAdlpSRTy5fCHq1tNekJo-ZfaWxI,901
|
94
94
|
locust/webui/dist/report.html,sha256=sOdZZVgZbqgu86BBCSQf3uQUYXgmgSnXF32JpnyAII8,513
|
95
95
|
locust/webui/dist/assets/favicon.ico,sha256=IUl-rYqfpHdV38e-s0bkmFIeLS-n3Ug0DQxk-h202hI,8348
|
96
96
|
locust/webui/dist/assets/index-941b6e82.js,sha256=G3n5R81Svt0HzbWaV3AV20jLWGLr4X50UZ-Adu2KcxU,1645614
|
97
97
|
locust/webui/dist/assets/logo.png,sha256=EIVPqr6wE_yqguHaqFHIsH0ZACLSrvNWyYO7PbyIj4w,19299
|
98
|
-
locust-2.26.1.
|
99
|
-
locust-2.26.1.
|
100
|
-
locust-2.26.1.
|
101
|
-
locust-2.26.1.
|
102
|
-
locust-2.26.1.
|
103
|
-
locust-2.26.1.
|
98
|
+
locust-2.26.1.dev16.dist-info/LICENSE,sha256=78XGpIn3fHVBfaxlPNUfjVufSN7QsdhpJMRJHv2AFpo,1095
|
99
|
+
locust-2.26.1.dev16.dist-info/METADATA,sha256=T-wQ7Bi9iJNdyPj0xvjWXgF7ot7QsKNj_19dZiCI7kM,7247
|
100
|
+
locust-2.26.1.dev16.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
101
|
+
locust-2.26.1.dev16.dist-info/entry_points.txt,sha256=RAdt8Ku-56m7bFjmdj-MBhbF6h4NX7tVODR9QNnOg0E,44
|
102
|
+
locust-2.26.1.dev16.dist-info/top_level.txt,sha256=XSsjgPA8Ggf9TqKVbkwSqZFuPlZ085X13M9orDycE20,7
|
103
|
+
locust-2.26.1.dev16.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|