locust 2.32.1.dev40__tar.gz → 2.32.2.dev4__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.32.1.dev40 → locust-2.32.2.dev4}/PKG-INFO +1 -1
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/_version.py +2 -2
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/web.py +32 -2
- locust-2.32.1.dev40/locust/webui/dist/assets/index-LlbhTJVf.js → locust-2.32.2.dev4/locust/webui/dist/assets/index-CV_-ndKF.js +31 -31
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/webui/dist/auth.html +1 -1
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/webui/dist/index.html +1 -1
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/pyproject.toml +1 -1
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/LICENSE +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/README.md +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/__init__.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/__main__.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/argument_parser.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/clients.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/contrib/__init__.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/contrib/fasthttp.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/contrib/mongodb.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/contrib/postgres.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/debug.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/dispatch.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/env.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/event.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/exception.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/html.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/input_events.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/log.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/main.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/py.typed +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/rpc/__init__.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/rpc/protocol.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/rpc/zmqrpc.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/runners.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/shape.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/stats.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/user/__init__.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/user/inspectuser.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/user/sequential_taskset.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/user/task.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/user/users.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/user/wait_time.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/__init__.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/cache.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/date.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/deprecation.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/directory.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/exception_handler.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/load_locustfile.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/rounding.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/timespan.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/util/url.py +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/webui/dist/assets/favicon-dark.png +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/webui/dist/assets/favicon-light.png +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/locust/webui/dist/report.html +0 -0
- {locust-2.32.1.dev40 → locust-2.32.2.dev4}/poetry.lock +0 -0
@@ -14,7 +14,7 @@ __version_tuple__: VERSION_TUPLE
|
|
14
14
|
version_tuple: VERSION_TUPLE
|
15
15
|
|
16
16
|
|
17
|
-
__version__ = "2.32.
|
17
|
+
__version__ = "2.32.2.dev4"
|
18
18
|
version = __version__
|
19
|
-
__version_tuple__ = (2, 32,
|
19
|
+
__version_tuple__ = (2, 32, 2, "dev4")
|
20
20
|
version_tuple = __version_tuple__
|
@@ -11,7 +11,7 @@ from io import StringIO
|
|
11
11
|
from itertools import chain
|
12
12
|
from json import dumps
|
13
13
|
from time import time
|
14
|
-
from typing import TYPE_CHECKING, Any
|
14
|
+
from typing import TYPE_CHECKING, Any, TypedDict
|
15
15
|
|
16
16
|
import gevent
|
17
17
|
from flask import (
|
@@ -53,6 +53,34 @@ greenlet_exception_handler = greenlet_exception_logger(logger)
|
|
53
53
|
DEFAULT_CACHE_TIME = 2.0
|
54
54
|
|
55
55
|
|
56
|
+
class InputField(TypedDict):
|
57
|
+
label: str
|
58
|
+
name: str
|
59
|
+
default_value: bool | None
|
60
|
+
choices: list[str] | None
|
61
|
+
is_secret: bool | None
|
62
|
+
|
63
|
+
|
64
|
+
class CustomForm(TypedDict):
|
65
|
+
inputs: list[InputField] | None
|
66
|
+
callback_url: str
|
67
|
+
submit_button_text: str | None
|
68
|
+
|
69
|
+
|
70
|
+
class AuthProvider(TypedDict):
|
71
|
+
label: str | None
|
72
|
+
callback_url: str
|
73
|
+
icon_url: str | None
|
74
|
+
|
75
|
+
|
76
|
+
class AuthArgs(TypedDict, total=False):
|
77
|
+
custom_form: CustomForm
|
78
|
+
auth_providers: AuthProvider
|
79
|
+
username_password_callback: str
|
80
|
+
error: str
|
81
|
+
info: str
|
82
|
+
|
83
|
+
|
56
84
|
class WebUI:
|
57
85
|
"""
|
58
86
|
Sets up and runs a Flask web app that can start and stop load tests using the
|
@@ -84,7 +112,7 @@ class WebUI:
|
|
84
112
|
"""Arguments used to render index.html for the web UI. Must be used with custom templates
|
85
113
|
extending index.html."""
|
86
114
|
|
87
|
-
auth_args:
|
115
|
+
auth_args: AuthArgs
|
88
116
|
"""Arguments used to render auth.html for the web UI auth page. Must be used when configuring auth"""
|
89
117
|
|
90
118
|
def __init__(
|
@@ -506,6 +534,7 @@ class WebUI:
|
|
506
534
|
return redirect(url_for("index"))
|
507
535
|
|
508
536
|
self.auth_args["error"] = session.get("auth_error", None)
|
537
|
+
self.auth_args["info"] = session.get("auth_info", None)
|
509
538
|
|
510
539
|
return render_template_from(
|
511
540
|
"auth.html",
|
@@ -577,6 +606,7 @@ class WebUI:
|
|
577
606
|
if self.web_login:
|
578
607
|
try:
|
579
608
|
session["auth_error"] = None
|
609
|
+
session["auth_info"] = None
|
580
610
|
return login_required(view_func)(*args, **kwargs)
|
581
611
|
except Exception as e:
|
582
612
|
return f"Locust auth exception: {e} See https://docs.locust.io/en/stable/extending-locust.html#adding-authentication-to-the-web-ui for configuring authentication."
|