(self, timestamp: float, executor: RequestExecutor)
| 356 | self.sessions = [s for s in self.sessions if not s.finished] |
| 357 | |
| 358 | def step(self, timestamp: float, executor: RequestExecutor): |
| 359 | if self.start_time is None: |
| 360 | self.start_time = timestamp |
| 361 | |
| 362 | if self.continue_flag: |
| 363 | if timestamp - self.last_user_join > self.gap_between_users: |
| 364 | new_session, self.continue_flag = self._create_user_session() |
| 365 | if new_session is not None: |
| 366 | self.last_user_join = timestamp |
| 367 | logger.info( |
| 368 | f"Joined a new user {self.user_id}, " |
| 369 | f"now active users: {len(self.sessions)}" |
| 370 | ) |
| 371 | |
| 372 | for session in self.sessions: |
| 373 | session.step(timestamp, executor) |
| 374 | |
| 375 | self._remove_finished_sessions() |
| 376 | |
| 377 | if not self.continue_flag and len(self.sessions) == 0: |
| 378 | return False |
| 379 | return True |
| 380 | |
| 381 | @staticmethod |
| 382 | def ProcessSummary( |
no test coverage detected