locust 2.29.2.dev32__py3-none-any.whl → 2.29.2.dev42__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.
Files changed (42) hide show
  1. locust/_version.py +6 -2
  2. locust/contrib/fasthttp.py +1 -1
  3. locust/dispatch.py +7 -6
  4. locust/stats.py +4 -17
  5. {locust-2.29.2.dev32.dist-info → locust-2.29.2.dev42.dist-info}/METADATA +31 -26
  6. locust-2.29.2.dev42.dist-info/RECORD +49 -0
  7. locust-2.29.2.dev42.dist-info/WHEEL +4 -0
  8. locust-2.29.2.dev42.dist-info/entry_points.txt +3 -0
  9. locust/test/__init__.py +0 -15
  10. locust/test/fake_module1_for_env_test.py +0 -7
  11. locust/test/fake_module2_for_env_test.py +0 -7
  12. locust/test/mock_locustfile.py +0 -56
  13. locust/test/mock_logging.py +0 -28
  14. locust/test/test_debugging.py +0 -39
  15. locust/test/test_dispatch.py +0 -4170
  16. locust/test/test_env.py +0 -283
  17. locust/test/test_fasthttp.py +0 -785
  18. locust/test/test_http.py +0 -325
  19. locust/test/test_interruptable_task.py +0 -48
  20. locust/test/test_load_locustfile.py +0 -228
  21. locust/test/test_locust_class.py +0 -831
  22. locust/test/test_log.py +0 -237
  23. locust/test/test_main.py +0 -2264
  24. locust/test/test_old_wait_api.py +0 -0
  25. locust/test/test_parser.py +0 -450
  26. locust/test/test_runners.py +0 -4476
  27. locust/test/test_sequential_taskset.py +0 -157
  28. locust/test/test_stats.py +0 -866
  29. locust/test/test_tags.py +0 -440
  30. locust/test/test_taskratio.py +0 -94
  31. locust/test/test_users.py +0 -69
  32. locust/test/test_util.py +0 -33
  33. locust/test/test_wait_time.py +0 -79
  34. locust/test/test_web.py +0 -1257
  35. locust/test/test_zmqrpc.py +0 -58
  36. locust/test/testcases.py +0 -248
  37. locust/test/util.py +0 -88
  38. locust-2.29.2.dev32.dist-info/RECORD +0 -79
  39. locust-2.29.2.dev32.dist-info/WHEEL +0 -5
  40. locust-2.29.2.dev32.dist-info/entry_points.txt +0 -2
  41. locust-2.29.2.dev32.dist-info/top_level.txt +0 -1
  42. {locust-2.29.2.dev32.dist-info → locust-2.29.2.dev42.dist-info}/LICENSE +0 -0
locust/test/test_env.py DELETED
@@ -1,283 +0,0 @@
1
- from locust import (
2
- constant,
3
- )
4
- from locust.dispatch import UsersDispatcher
5
- from locust.env import Environment, LoadTestShape
6
- from locust.user import (
7
- User,
8
- task,
9
- )
10
- from locust.user.task import TaskSet
11
-
12
- from .fake_module1_for_env_test import MyUserWithSameName as MyUserWithSameName1
13
- from .fake_module2_for_env_test import MyUserWithSameName as MyUserWithSameName2
14
- from .testcases import LocustTestCase
15
-
16
-
17
- class TestEnvironment(LocustTestCase):
18
- def test_user_classes_count(self):
19
- class MyUser1(User):
20
- wait_time = constant(0)
21
-
22
- @task
23
- def my_task(self):
24
- pass
25
-
26
- class MyUser2(User):
27
- wait_time = constant(0)
28
-
29
- @task
30
- def my_task(self):
31
- pass
32
-
33
- environment = Environment(user_classes=[MyUser1, MyUser2])
34
-
35
- self.assertDictEqual({"MyUser1": MyUser1, "MyUser2": MyUser2}, environment.user_classes_by_name)
36
-
37
- def test_user_classes_with_same_name_is_error(self):
38
- with self.assertRaises(ValueError) as e:
39
- Environment(user_classes=[MyUserWithSameName1, MyUserWithSameName2])
40
-
41
- self.assertEqual(
42
- e.exception.args[0],
43
- "The following user classes have the same class name: locust.test.fake_module1_for_env_test.MyUserWithSameName, locust.test.fake_module2_for_env_test.MyUserWithSameName",
44
- )
45
-
46
- def test_assign_equal_weights(self):
47
- def verify_tasks(u, target_tasks):
48
- self.assertEqual(len(u.tasks), len(target_tasks))
49
- tasks = [t.__name__ for t in u.tasks]
50
- self.assertEqual(len(tasks), len(set(tasks)))
51
- self.assertEqual(set(tasks), set(target_tasks))
52
-
53
- # Base case
54
- class MyUser1(User):
55
- wait_time = constant(0)
56
-
57
- @task(4)
58
- def my_task(self):
59
- pass
60
-
61
- @task(1)
62
- def my_task_2(self):
63
- pass
64
-
65
- environment = Environment(user_classes=[MyUser1])
66
- environment.assign_equal_weights()
67
- u = environment.user_classes[0]
68
- verify_tasks(u, ["my_task", "my_task_2"])
69
-
70
- # Testing nested task sets
71
- class MyUser2(User):
72
- @task
73
- class TopLevelTaskSet(TaskSet):
74
- @task
75
- class IndexTaskSet(TaskSet):
76
- @task(10)
77
- def index(self):
78
- self.client.get("/")
79
-
80
- @task
81
- def stop(self):
82
- self.client.get("/hi")
83
-
84
- @task(2)
85
- def stats(self):
86
- self.client.get("/stats/requests")
87
-
88
- environment = Environment(user_classes=[MyUser2])
89
- environment.assign_equal_weights()
90
- u = environment.user_classes[0]
91
- verify_tasks(u, ["index", "stop", "stats"])
92
-
93
- # Testing task assignment via instance variable
94
- def outside_task():
95
- pass
96
-
97
- def outside_task_2():
98
- pass
99
-
100
- class SingleTaskSet(TaskSet):
101
- tasks = [outside_task, outside_task, outside_task_2]
102
-
103
- class MyUser3(User):
104
- tasks = [SingleTaskSet, outside_task]
105
-
106
- environment = Environment(user_classes=[MyUser3])
107
- environment.assign_equal_weights()
108
- u = environment.user_classes[0]
109
- verify_tasks(u, ["outside_task", "outside_task_2"])
110
-
111
- # Testing task assignment via dict
112
- class DictTaskSet(TaskSet):
113
- def dict_task_1():
114
- pass
115
-
116
- def dict_task_2():
117
- pass
118
-
119
- def dict_task_3():
120
- pass
121
-
122
- tasks = {
123
- dict_task_1: 5,
124
- dict_task_2: 3,
125
- dict_task_3: 1,
126
- }
127
-
128
- class MyUser4(User):
129
- tasks = [DictTaskSet, SingleTaskSet, SingleTaskSet]
130
-
131
- # Assign user tasks in dict
132
- environment = Environment(user_classes=[MyUser4])
133
- environment.assign_equal_weights()
134
- u = environment.user_classes[0]
135
- verify_tasks(u, ["outside_task", "outside_task_2", "dict_task_1", "dict_task_2", "dict_task_3"])
136
-
137
- class MyUser5(User):
138
- tasks = {
139
- DictTaskSet: 5,
140
- SingleTaskSet: 3,
141
- outside_task: 6,
142
- }
143
-
144
- environment = Environment(user_classes=[MyUser5])
145
- environment.assign_equal_weights()
146
- u = environment.user_classes[0]
147
- verify_tasks(u, ["outside_task", "outside_task_2", "dict_task_1", "dict_task_2", "dict_task_3"])
148
-
149
- def test_user_classes_with_zero_weight_are_removed(self):
150
- class MyUser1(User):
151
- wait_time = constant(0)
152
- weight = 0
153
-
154
- @task
155
- def my_task(self):
156
- pass
157
-
158
- class MyUser2(User):
159
- wait_time = constant(0)
160
- weight = 1
161
-
162
- @task
163
- def my_task(self):
164
- pass
165
-
166
- environment = Environment(user_classes=[MyUser1, MyUser2])
167
-
168
- self.assertEqual(len(environment.user_classes), 1)
169
- self.assertIs(environment.user_classes[0], MyUser2)
170
-
171
- def test_all_user_classes_with_zero_weight_raises_exception(self):
172
- class MyUser1(User):
173
- wait_time = constant(0)
174
- weight = 0
175
-
176
- @task
177
- def my_task(self):
178
- pass
179
-
180
- class MyUser2(User):
181
- wait_time = constant(0)
182
- weight = 0
183
-
184
- @task
185
- def my_task(self):
186
- pass
187
-
188
- with self.assertRaises(ValueError) as e:
189
- Environment(user_classes=[MyUser1, MyUser2])
190
-
191
- self.assertEqual(
192
- e.exception.args[0],
193
- "There are no users with weight > 0.",
194
- )
195
-
196
- def test_shape_class_attribute(self):
197
- class SubLoadTestShape(LoadTestShape):
198
- """Inherited from locust.env.LoadTestShape"""
199
-
200
- with self.assertRaisesRegex(
201
- ValueError, r"instance of LoadTestShape or subclass LoadTestShape", msg="exception message is mismatching"
202
- ):
203
- Environment(user_classes=[MyUserWithSameName1], shape_class=SubLoadTestShape)
204
-
205
- def test_dispatcher_class_attribute(self):
206
- environment = Environment(user_classes=[MyUserWithSameName1])
207
-
208
- self.assertEqual(environment.dispatcher_class, UsersDispatcher)
209
-
210
- class MyUsersDispatcher(UsersDispatcher):
211
- pass
212
-
213
- environment = Environment(user_classes=[MyUserWithSameName1], dispatcher_class=MyUsersDispatcher)
214
-
215
- self.assertEqual(environment.dispatcher_class, MyUsersDispatcher)
216
-
217
- def test_update_user_class(self):
218
- class MyUser1(User):
219
- @task
220
- def my_task(self):
221
- pass
222
-
223
- @task
224
- def my_task_2(self):
225
- pass
226
-
227
- class MyUser2(User):
228
- @task
229
- def my_task(self):
230
- pass
231
-
232
- environment = Environment(
233
- user_classes=[MyUser1, MyUser2],
234
- available_user_classes={"User1": MyUser1, "User2": MyUser2},
235
- available_user_tasks={"User1": MyUser1.tasks, "User2": MyUser2.tasks},
236
- )
237
-
238
- environment.update_user_class({"user_class_name": "User1", "host": "http://localhost", "tasks": ["my_task_2"]})
239
-
240
- self.assertEqual(
241
- environment.available_user_classes["User1"].json(),
242
- {"host": "http://localhost", "tasks": ["my_task_2"], "fixed_count": 0, "weight": 1},
243
- )
244
-
245
- def test_distributed_update_user_class(self):
246
- class MyUser1(User):
247
- @task
248
- def my_task(self):
249
- pass
250
-
251
- @task
252
- def my_task_2(self):
253
- pass
254
-
255
- class MyUser2(User):
256
- @task
257
- def my_task(self):
258
- pass
259
-
260
- master_env = Environment(
261
- user_classes=[MyUser1, MyUser2],
262
- available_user_classes={"User1": MyUser1, "User2": MyUser2},
263
- available_user_tasks={"User1": MyUser1.tasks, "User2": MyUser2.tasks},
264
- )
265
- master = master_env.create_master_runner("*", 0)
266
-
267
- worker_env = Environment(
268
- user_classes=[MyUser1, MyUser2],
269
- available_user_classes={"User1": MyUser1, "User2": MyUser2},
270
- available_user_tasks={"User1": MyUser1.tasks, "User2": MyUser2.tasks},
271
- )
272
- worker_env.create_worker_runner("127.0.0.1", master.server.port)
273
-
274
- master_env.update_user_class({"user_class_name": "User1", "host": "http://localhost", "tasks": ["my_task_2"]})
275
-
276
- self.assertEqual(
277
- master_env.available_user_classes["User1"].json(),
278
- {"host": "http://localhost", "tasks": ["my_task_2"], "fixed_count": 0, "weight": 1},
279
- )
280
- self.assertEqual(
281
- worker_env.available_user_classes["User1"].json(),
282
- {"host": "http://localhost", "tasks": ["my_task_2"], "fixed_count": 0, "weight": 1},
283
- )