locust 2.32.2.dev44__py3-none-any.whl → 2.32.3.dev4__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 CHANGED
@@ -14,7 +14,7 @@ __version_tuple__: VERSION_TUPLE
14
14
  version_tuple: VERSION_TUPLE
15
15
 
16
16
 
17
- __version__ = "2.32.2.dev44"
17
+ __version__ = "2.32.3.dev4"
18
18
  version = __version__
19
- __version_tuple__ = (2, 32, 2, "dev44")
19
+ __version_tuple__ = (2, 32, 3, "dev4")
20
20
  version_tuple = __version_tuple__
locust/env.py CHANGED
@@ -295,8 +295,7 @@ class Environment:
295
295
  def _validate_shape_class_instance(self):
296
296
  if self.shape_class is not None and not isinstance(self.shape_class, LoadTestShape):
297
297
  raise ValueError(
298
- "shape_class should be instance of LoadTestShape or subclass LoadTestShape, but got: %s"
299
- % self.shape_class
298
+ f"shape_class should be instance of LoadTestShape or subclass LoadTestShape, but got: {self.shape_class}"
300
299
  )
301
300
 
302
301
  @property
locust/log.py CHANGED
@@ -95,7 +95,7 @@ def greenlet_exception_logger(logger, level=logging.CRITICAL):
95
95
  if greenlet.exc_info[0] == SystemExit:
96
96
  logger.log(
97
97
  min(logging.INFO, level), # dont use higher than INFO for this, because it sounds way to urgent
98
- "sys.exit(%s) called (use log level DEBUG for callstack)" % greenlet.exc_info[1],
98
+ f"sys.exit({greenlet.exc_info[1]}) called (use log level DEBUG for callstack)",
99
99
  )
100
100
  logger.log(logging.DEBUG, "Unhandled exception in greenlet: %s", greenlet, exc_info=greenlet.exc_info)
101
101
  else:
locust/main.py CHANGED
@@ -554,7 +554,7 @@ See https://github.com/locustio/locust/wiki/Installation#increasing-maximum-numb
554
554
  logger.info("--run-time limit reached, stopping test")
555
555
  runner.stop()
556
556
  if options.autoquit != -1:
557
- logger.debug("Autoquit time limit set to %s seconds" % options.autoquit)
557
+ logger.debug(f"Autoquit time limit set to {options.autoquit} seconds")
558
558
  time.sleep(options.autoquit)
559
559
  logger.info("--autoquit time reached, shutting down")
560
560
  runner.quit()
locust/runners.py CHANGED
@@ -217,7 +217,7 @@ class Runner:
217
217
  n += 1
218
218
  if n % 10 == 0 or n == spawn_count:
219
219
  logger.debug("%i users spawned" % self.user_count)
220
- logger.debug("All users of class %s spawned" % user_class)
220
+ logger.debug(f"All users of class {user_class} spawned")
221
221
  return new_users
222
222
 
223
223
  new_users: list[User] = []
@@ -256,7 +256,7 @@ class Runner:
256
256
 
257
257
  while True:
258
258
  user_to_stop: User = to_stop.pop()
259
- logger.debug("Stopping %s" % user_to_stop.greenlet.name)
259
+ logger.debug(f"Stopping {user_to_stop.greenlet.name}")
260
260
  if user_to_stop.greenlet is greenlet.getcurrent():
261
261
  # User called runner.quit(), so don't block waiting for killing to finish
262
262
  user_to_stop.group.killone(user_to_stop.greenlet, block=False)
@@ -272,8 +272,7 @@ class Runner:
272
272
 
273
273
  if not stop_group.join(timeout=self.environment.stop_timeout):
274
274
  logger.info(
275
- "Not all users finished their tasks & terminated in %s seconds. Stopping them..."
276
- % self.environment.stop_timeout
275
+ f"Not all users finished their tasks & terminated in {self.environment.stop_timeout} seconds. Stopping them..."
277
276
  )
278
277
  stop_group.kill(block=True)
279
278
 
@@ -495,7 +494,7 @@ class LocalRunner(Runner):
495
494
  user_classes_spawn_count: dict[str, int] = {}
496
495
  user_classes_stop_count: dict[str, int] = {}
497
496
  user_classes_count = dispatched_users[self._local_worker_node.id]
498
- logger.debug("Ramping to %s" % _format_user_classes_count_for_log(user_classes_count))
497
+ logger.debug(f"Ramping to {_format_user_classes_count_for_log(user_classes_count)}")
499
498
  for user_class_name, user_class_count in user_classes_count.items():
500
499
  if self.user_classes_count[user_class_name] > user_class_count:
501
500
  user_classes_stop_count[user_class_name] = (
@@ -558,7 +557,7 @@ class LocalRunner(Runner):
558
557
  :param msg_type: The type of the message to emulate sending
559
558
  :param data: Optional data to include
560
559
  """
561
- logger.debug("Running locally: sending %s message to self" % msg_type)
560
+ logger.debug(f"Running locally: sending {msg_type} message to self")
562
561
  if msg_type in self.custom_messages:
563
562
  listener, concurrent = self.custom_messages[msg_type]
564
563
  msg = Message(msg_type, data, "local")
@@ -877,7 +876,7 @@ class MasterRunner(DistributedRunner):
877
876
 
878
877
  if send_stop_to_client:
879
878
  for client in self.clients.all:
880
- logger.debug("Sending stop message to worker %s" % client.id)
879
+ logger.debug(f"Sending stop message to worker {client.id}")
881
880
  self.server.send_to_client(Message("stop", None, client.id))
882
881
 
883
882
  # Give an additional 60s for all workers to stop
@@ -987,8 +986,7 @@ class MasterRunner(DistributedRunner):
987
986
  logger.error(f"RPCError: {e}. Will reset RPC server.")
988
987
  else:
989
988
  logger.debug(
990
- "RPCError when receiving from worker: %s (but no workers were expected to be connected anyway)"
991
- % (e)
989
+ f"RPCError when receiving from worker: {e} (but no workers were expected to be connected anyway)"
992
990
  )
993
991
  self.connection_broken = True
994
992
  gevent.sleep(FALLBACK_INTERVAL)
@@ -1410,7 +1408,7 @@ class WorkerRunner(DistributedRunner):
1410
1408
  # master says we have finished spawning (happens only once during a normal rampup)
1411
1409
  self.environment.events.spawning_complete.fire(user_count=msg.data["user_count"])
1412
1410
  elif msg.type in self.custom_messages:
1413
- logger.debug("Received %s message from master" % msg.type)
1411
+ logger.debug(f"Received {msg.type} message from master")
1414
1412
  listener, concurrent = self.custom_messages[msg.type]
1415
1413
  if not concurrent:
1416
1414
  listener(environment=self.environment, msg=msg)
@@ -1454,7 +1452,7 @@ class WorkerRunner(DistributedRunner):
1454
1452
  :param data: Optional data to send
1455
1453
  :param client_id: (unused)
1456
1454
  """
1457
- logger.debug("Sending %s message to master" % msg_type)
1455
+ logger.debug(f"Sending {msg_type} message to master")
1458
1456
  self.client.send(Message(msg_type, data, self.client_id))
1459
1457
 
1460
1458
  def _send_stats(self) -> None:
@@ -12,7 +12,7 @@ def check_for_deprecated_task_set_attribute(class_dict):
12
12
  if issubclass(task_set, TaskSet) and not hasattr(task_set, "locust_task_weight"):
13
13
  warnings.warn(
14
14
  "Usage of User.task_set is deprecated since version 1.0. Set the tasks attribute instead "
15
- "(tasks = [%s])" % task_set.__name__,
15
+ f"(tasks = [{task_set.__name__}])",
16
16
  DeprecationWarning,
17
17
  )
18
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: locust
3
- Version: 2.32.2.dev44
3
+ Version: 2.32.3.dev4
4
4
  Summary: Developer-friendly load testing framework
5
5
  Home-page: https://locust.io/
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  locust/__init__.py,sha256=Jit8eNUrwuMLqavyFvMZr69e61DILq_KB4yT4MciScw,1681
2
2
  locust/__main__.py,sha256=vBQ82334kX06ImDbFlPFgiBRiLIinwNk3z8Khs6hd74,31
3
- locust/_version.py,sha256=dUSxFlnXyMcvSi7AQ0D_6C9Fi3VJJOrtTLL5zJWCWz8,460
3
+ locust/_version.py,sha256=5Zt98omYsUnBiFJvkesVXvi5Fbncl4ip6U5ioLx3IPE,458
4
4
  locust/argument_parser.py,sha256=LuGP0vppUIYzbXI3PTIbB1USajbwwTGC_FqagkyG3Dg,29424
5
5
  locust/clients.py,sha256=XK-xabq2_5GZKMEjebDobvEjeBTtCs8h2EelL7s68Qs,19346
6
6
  locust/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -9,18 +9,18 @@ locust/contrib/mongodb.py,sha256=1seUYgJOaNKwybYOP9PUEVhgl8hGy-G33f8lFj3R8W8,124
9
9
  locust/contrib/postgres.py,sha256=OuMWnGYN10K65Tq2axVESEW25Y0g5gJb0rK90jkcCJg,1230
10
10
  locust/debug.py,sha256=7CCm8bIg44uGH2wqBlo1rXBzV2VzwPicLxLewz8r5CQ,5099
11
11
  locust/dispatch.py,sha256=prdwtb9EoN4A9klgiKgWuwQmvFB8hEuFHOK6ot62AJI,16202
12
- locust/env.py,sha256=URPRltUBdOdCCO1yb2WmE9JeUlI_SAm9l7cvR9j1c_s,13083
12
+ locust/env.py,sha256=UgR85CbbMXjhsbrMO8cx--ubdzEwuM2WZtY8DFMHHho,13065
13
13
  locust/event.py,sha256=AWoeG2q11Vpupv1eW9Rf2N0EI4dDDAldKe6zY1ajC7I,8717
14
14
  locust/exception.py,sha256=jGgJ32ubuf4pWdlaVOkbh2Y0LlG0_DHi-lv3ib8ppOE,1791
15
15
  locust/html.py,sha256=X9N8u42aHptcQdRZ5cLrBmDuXqRW0yXH_TaWPsWfweY,3691
16
16
  locust/input_events.py,sha256=ZIyePyAMuA_YFYWg18g_pE4kwuQV3RbEB250MzXRwjY,3314
17
- locust/log.py,sha256=Wrkn0Ibugh5Sqjm4hGQ2-jUsy1tNMBdTctp4FyXQI24,3457
18
- locust/main.py,sha256=LEr4WaPCraEOF8mt0-FY8r1MveF6G9y6lsnRxm66PNc,29933
17
+ locust/log.py,sha256=50sj-aIyiE4NyZenXZV4SKl-VimiD5IVZRsARTR0b5M,3455
18
+ locust/main.py,sha256=x12ZG69nxkB17xQo7zSEu2s5t9ZPLLqksKwvp_hzcDY,29931
19
19
  locust/py.typed,sha256=gkWLl8yD4mIZnNYYAIRM8g9VarLvWmTAFeUfEbxJLBw,65
20
20
  locust/rpc/__init__.py,sha256=nVGoHWFQxZjnhCDWjbgXIbmFbN9sizAjkhvSs9_642c,58
21
21
  locust/rpc/protocol.py,sha256=n-rb3GZQcAlldYDj4E4GuFGylYj_26GSS5U29meft5Y,1282
22
22
  locust/rpc/zmqrpc.py,sha256=_zl0DKazQLD2YyqxvyuskVApsDCaUnhloHvV8SkJxjw,3157
23
- locust/runners.py,sha256=vO_2Nv7WHcHnUguIpNCBstSAln4Zg1S4ExfFoHQpo4A,70514
23
+ locust/runners.py,sha256=NS7lRfzg6VC22YslgkFMvlKDWmcVCdLQAxor-4edQcU,70454
24
24
  locust/shape.py,sha256=t-lwBS8LOjWcKXNL7j2U3zroIXJ1b0fazUwpRYQOKXw,1973
25
25
  locust/stats.py,sha256=Ylw-uyt3cpeqy0Oi5kvcloVWgjJm62lu9lbWJfq2lHU,46061
26
26
  locust/user/__init__.py,sha256=S2yvmI_AU9kXirtTIVqiV_Hs7yXzqXvaSgkNo9ig-fk,71
@@ -32,7 +32,7 @@ locust/user/wait_time.py,sha256=bGRKMVx4lom75sX3POYJUa1CPeME2bEAXG6CEgxSO5U,2675
32
32
  locust/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  locust/util/cache.py,sha256=IxbpGawl0-hoWKvCrtksxjSLf2GbBBTVns06F7mFBkM,1062
34
34
  locust/util/date.py,sha256=2uZAY-fkJq7llUcVywTDTbe-_2IYumCv18n3Vrc75gw,833
35
- locust/util/deprecation.py,sha256=pFipULkYFjYnuFSycJZ0s95r0CTSlvx8otGnqSu1bsQ,2028
35
+ locust/util/deprecation.py,sha256=4my4IcFpbM6yEKr569GMUKMsS0ywp0N4JPhhwm3J1-w,2026
36
36
  locust/util/directory.py,sha256=2EeuVIIFEErm0OpNXdsEgQLx49jAXq-PvMj2uY0Mr8o,326
37
37
  locust/util/exception_handler.py,sha256=jTMyBq2a0O07fRjmqGkheyaPj58tUgnbbcjoesKGPws,797
38
38
  locust/util/load_locustfile.py,sha256=hn70KcIG8jHmZyuKv2pcEmwgWtOEu24Efeji1KRYNUE,2964
@@ -47,8 +47,8 @@ locust/webui/dist/auth.html,sha256=0fvb3-Y4J93meBMkvrOAMRt4hkF9lislJ2Tmc93urN4,6
47
47
  locust/webui/dist/index.html,sha256=VawZBgQnz65gCIE8lCvhsvuXKc9kDc9DNiVrn9PV-08,654
48
48
  locust/webui/dist/report.html,sha256=KUmkufa4Ob8GTqBmVtFnueZL8h76eEUMVnoL069cAcg,1471006
49
49
  poetry.lock,sha256=NUOC8hV7YCL5kHXj3GF2Kb16DLRCXoZUjiWXPghYEyg,213450
50
- locust-2.32.2.dev44.dist-info/LICENSE,sha256=78XGpIn3fHVBfaxlPNUfjVufSN7QsdhpJMRJHv2AFpo,1095
51
- locust-2.32.2.dev44.dist-info/METADATA,sha256=6effknSN8KFq1BB_WBDmKeSYryxSi9ZIwz1Q1u1wWfA,7877
52
- locust-2.32.2.dev44.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
53
- locust-2.32.2.dev44.dist-info/entry_points.txt,sha256=RhIxlLwU_Ae_WjimS5COUDLagdCh6IOMyLtgaQxNmlM,43
54
- locust-2.32.2.dev44.dist-info/RECORD,,
50
+ locust-2.32.3.dev4.dist-info/LICENSE,sha256=78XGpIn3fHVBfaxlPNUfjVufSN7QsdhpJMRJHv2AFpo,1095
51
+ locust-2.32.3.dev4.dist-info/METADATA,sha256=vx_37DobJZQWvjJc3AR_bWS7EQJOC5DlLVqcFichT-k,7876
52
+ locust-2.32.3.dev4.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
53
+ locust-2.32.3.dev4.dist-info/entry_points.txt,sha256=RhIxlLwU_Ae_WjimS5COUDLagdCh6IOMyLtgaQxNmlM,43
54
+ locust-2.32.3.dev4.dist-info/RECORD,,