Вступить в клуб →
сложнаяpythonUI-автоматизация: Playwright, Selenium, Page Object

Ожидание условия с таймаутом, которое можно проверить без реального времени

Нужна утилита ожидания для автотестов. Чтобы её можно было протестировать без реальных пауз, часы и сон передаются параметрами.

Напишите функцию wait_until(condition, timeout, interval, clock, sleep).

  • Вызывает condition(). Если результат истинный — сразу возвращает его.
  • Иначе вызывает sleep(interval) и пробует снова.
  • Время отсчитывается по clock() — функции, возвращающей секунды. Если с первого вызова clock() прошло больше timeout, а условие так и не выполнилось, бросьте TimeoutError.
  • Порядок на каждой попытке: проверить условие, затем проверить время, и только потом спать. Если таймаут уже превышен, не спите ещё раз — сразу бросайте TimeoutError.

заготовка решения

def wait_until(condition, timeout, interval, clock, sleep):
    # ваш код
    return None

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела