locust 2.27.1.dev35__py3-none-any.whl → 2.27.1.dev40__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/runners.py +3 -0
- locust/test/test_runners.py +18 -0
- locust/web.py +4 -1
- {locust-2.27.1.dev35.dist-info → locust-2.27.1.dev40.dist-info}/METADATA +1 -1
- {locust-2.27.1.dev35.dist-info → locust-2.27.1.dev40.dist-info}/RECORD +10 -10
- {locust-2.27.1.dev35.dist-info → locust-2.27.1.dev40.dist-info}/LICENSE +0 -0
- {locust-2.27.1.dev35.dist-info → locust-2.27.1.dev40.dist-info}/WHEEL +0 -0
- {locust-2.27.1.dev35.dist-info → locust-2.27.1.dev40.dist-info}/entry_points.txt +0 -0
- {locust-2.27.1.dev35.dist-info → locust-2.27.1.dev40.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.27.1.
|
16
|
-
__version_tuple__ = version_tuple = (2, 27, 1, '
|
15
|
+
__version__ = version = '2.27.1.dev40'
|
16
|
+
__version_tuple__ = version_tuple = (2, 27, 1, 'dev40')
|
locust/runners.py
CHANGED
@@ -223,6 +223,9 @@ class Runner:
|
|
223
223
|
new_users: list[User] = []
|
224
224
|
while n < spawn_count:
|
225
225
|
new_user = self.user_classes_by_name[user_class](self.environment)
|
226
|
+
assert hasattr(
|
227
|
+
new_user, "environment"
|
228
|
+
), f"Attribute 'environment' is missing on user {user_class}. Perhaps you defined your own __init__ and forgot to call the base constructor? (super().__init__(*args, **kwargs))"
|
226
229
|
new_user.start(self.user_greenlets)
|
227
230
|
new_users.append(new_user)
|
228
231
|
n += 1
|
locust/test/test_runners.py
CHANGED
@@ -144,6 +144,24 @@ class LocustRunnerTestCase(LocustTestCase):
|
|
144
144
|
|
145
145
|
|
146
146
|
class TestLocustRunner(LocustRunnerTestCase):
|
147
|
+
def test_missing_constructor_call_in_user(self):
|
148
|
+
class BadUser(User):
|
149
|
+
def __init__(self, *args, **kwargs):
|
150
|
+
pass # not calling base class constructor!!!
|
151
|
+
|
152
|
+
@task
|
153
|
+
def t(self):
|
154
|
+
pass
|
155
|
+
|
156
|
+
environment = Environment(user_classes=[BadUser])
|
157
|
+
runner = LocalRunner(environment)
|
158
|
+
with self.assertRaises(AssertionError) as assert_raises_context:
|
159
|
+
runner.spawn_users({BadUser.__name__: 1})
|
160
|
+
self.assertIn(
|
161
|
+
"Attribute 'environment' is missing on user BadUser. Perhaps you defined your own __init__ and forgot to call the base constructor",
|
162
|
+
str(assert_raises_context.exception),
|
163
|
+
)
|
164
|
+
|
147
165
|
def test_cpu_warning(self):
|
148
166
|
_monitor_interval = runners.CPU_MONITOR_INTERVAL
|
149
167
|
runners.CPU_MONITOR_INTERVAL = 2.0
|
locust/web.py
CHANGED
@@ -147,7 +147,10 @@ class WebUI:
|
|
147
147
|
def handle_exception(error):
|
148
148
|
error_message = str(error)
|
149
149
|
error_code = getattr(error, "code", 500)
|
150
|
-
logger.log(
|
150
|
+
logger.log(
|
151
|
+
logging.INFO if error_code <= 404 else logging.ERROR,
|
152
|
+
f"UI got request for {request.path}, but it resulted in a {error.code}: {error.name}",
|
153
|
+
)
|
151
154
|
return make_response(error_message, error_code)
|
152
155
|
|
153
156
|
@app.route("/assets/<path:path>")
|
@@ -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=3uMMGoO04UD8xBt4WrGeqL6Lo4R5EgC72VHpkOTnU-8,428
|
4
4
|
locust/argument_parser.py,sha256=w4-Ue1XAFPwG3sLyXrpdV9ejKjTUOpcSsPBbCKwRbiQ,28740
|
5
5
|
locust/clients.py,sha256=YKuAyMAbxs8_-w7XJw0hc67KFBNNLxibsw6FwiS01Q8,14781
|
6
6
|
locust/debug.py,sha256=We6Z9W0btkKSc7PxWmrZx-xMynvOOsKhG6jmDgQin0g,5134
|
@@ -13,10 +13,10 @@ locust/input_events.py,sha256=ZIyePyAMuA_YFYWg18g_pE4kwuQV3RbEB250MzXRwjY,3314
|
|
13
13
|
locust/log.py,sha256=cqLt7nnxnQuM4vWFB5EpJpNUTxGBVEkUJuaJPI1S7_Y,3186
|
14
14
|
locust/main.py,sha256=NGjL5QqakU5aeyUzwu2Fh00xVZfC3eoBE3DtfOmRtcM,27854
|
15
15
|
locust/py.typed,sha256=gkWLl8yD4mIZnNYYAIRM8g9VarLvWmTAFeUfEbxJLBw,65
|
16
|
-
locust/runners.py,sha256=
|
16
|
+
locust/runners.py,sha256=kbEJtHVbDyQnd4IFo0GogasiZKWGXqFgiOiKt3aMjxw,68083
|
17
17
|
locust/shape.py,sha256=t-lwBS8LOjWcKXNL7j2U3zroIXJ1b0fazUwpRYQOKXw,1973
|
18
18
|
locust/stats.py,sha256=IXhOtYJ_B863kyrHysNQmuFHv2Vd57vE3Rnerwp3bzs,45859
|
19
|
-
locust/web.py,sha256=
|
19
|
+
locust/web.py,sha256=5Zj8nTa3Kr0aLhC1bXjZ5bissSOddYFQnIw8NOFUdPI,26976
|
20
20
|
locust/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
21
|
locust/contrib/fasthttp.py,sha256=vByPepw35DF84qZ2xK89yHgjOA_8btV0wig_rSR6p4g,26757
|
22
22
|
locust/rpc/__init__.py,sha256=nVGoHWFQxZjnhCDWjbgXIbmFbN9sizAjkhvSs9_642c,58
|
@@ -39,7 +39,7 @@ locust/test/test_log.py,sha256=YPY6vgTAy1KaNU2qoVvQrTH5x_mzRrljEHrkSBy3yxs,7553
|
|
39
39
|
locust/test/test_main.py,sha256=7OuH2-7noD_rbeoKJD9hIZsylSugu7ze3XFIrU1u0HI,85016
|
40
40
|
locust/test/test_old_wait_api.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
41
41
|
locust/test/test_parser.py,sha256=-2VO5Dopg-VoWvIgXrmr7GN40cqrnjUoctBHmVlyewg,17826
|
42
|
-
locust/test/test_runners.py,sha256=
|
42
|
+
locust/test/test_runners.py,sha256=UWHmQW59QV1ZQzHRZjFIZiSW8ROUIVCuUgU-VAwOpH8,160110
|
43
43
|
locust/test/test_sequential_taskset.py,sha256=QjVMWWfGHn9hU5AvPxRDU7Vo5DcVW1VkMVfDA0k9OPE,3398
|
44
44
|
locust/test/test_stats.py,sha256=F51VkL3k3y4OhYBlRyV6vWzisenSAOmSWKy2IPVrnWM,33929
|
45
45
|
locust/test/test_tags.py,sha256=mzhGLPMizSnSItTHLHizYvloxDfuIDAOgelwInyrf28,13138
|
@@ -70,9 +70,9 @@ locust/webui/dist/report.html,sha256=sOdZZVgZbqgu86BBCSQf3uQUYXgmgSnXF32JpnyAII8
|
|
70
70
|
locust/webui/dist/assets/favicon.ico,sha256=IUl-rYqfpHdV38e-s0bkmFIeLS-n3Ug0DQxk-h202hI,8348
|
71
71
|
locust/webui/dist/assets/index-941b6e82.js,sha256=G3n5R81Svt0HzbWaV3AV20jLWGLr4X50UZ-Adu2KcxU,1645614
|
72
72
|
locust/webui/dist/assets/logo.png,sha256=EIVPqr6wE_yqguHaqFHIsH0ZACLSrvNWyYO7PbyIj4w,19299
|
73
|
-
locust-2.27.1.
|
74
|
-
locust-2.27.1.
|
75
|
-
locust-2.27.1.
|
76
|
-
locust-2.27.1.
|
77
|
-
locust-2.27.1.
|
78
|
-
locust-2.27.1.
|
73
|
+
locust-2.27.1.dev40.dist-info/LICENSE,sha256=78XGpIn3fHVBfaxlPNUfjVufSN7QsdhpJMRJHv2AFpo,1095
|
74
|
+
locust-2.27.1.dev40.dist-info/METADATA,sha256=H6rAgduxpQhRMeW1XsN2UgZNOJIp_JBC_XeWhAa0Hew,7264
|
75
|
+
locust-2.27.1.dev40.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
76
|
+
locust-2.27.1.dev40.dist-info/entry_points.txt,sha256=RAdt8Ku-56m7bFjmdj-MBhbF6h4NX7tVODR9QNnOg0E,44
|
77
|
+
locust-2.27.1.dev40.dist-info/top_level.txt,sha256=XSsjgPA8Ggf9TqKVbkwSqZFuPlZ085X13M9orDycE20,7
|
78
|
+
locust-2.27.1.dev40.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|