Курс Python → Тестирование времени с Freezegun

Библиотека freezegun предоставляет удобные инструменты для тестирования программ, которые зависят от текущей даты и времени. Она позволяет «замораживать» время на определенной точке, что позволяет программисту создавать стабильные и предсказуемые тесты. Например, если у вас есть функция, которая должна возвращать разные результаты в зависимости от дня недели, то с помощью freezegun вы можете задать конкретный день и проверить правильность работы функции.

Для использования библиотеки freezegun вам необходимо установить ее с помощью pip, выполнив команду pip install freezegun. После этого вы можете импортировать ее в свой код с помощью строки import freezegun. Теперь вы готовы начать использовать возможности библиотеки для тестирования ваших программ.

Пример использования библиотеки freezegun:


import freezegun
from datetime import datetime

@freezegun.freeze_time("2022-12-25")
def test_christmas():
    assert datetime.now() == datetime(2022, 12, 25)

В этом примере мы используем декоратор @freezegun.freeze_time("2022-12-25"), чтобы «заморозить» время на 25 декабря 2022 года. Затем мы проверяем, что текущее время соответствует заданной дате. Таким образом, мы можем убедиться, что наша функция работает корректно в определенном временном контексте.

Библиотека freezegun обладает множеством возможностей для управления временем в тестах, таких как перемещение вперед или назад на определенный промежуток времени, установка часового пояса и многое другое. Это делает ее отличным инструментом для создания надежных и устойчивых тестов, которые не зависят от внешних условий.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Метод rlshift для битового сдвига
  2. Нахождение максимального значения и его индекса в списке
  3. Конкатенация строк с помощью join()
  4. Подсчет элементов с помощью Counter из collections
  5. Создание списков в Python
  6. Сумма элементов списка
  7. Атрибуты класса и экземпляра
  8. Оформление кода на Python
  9. Использование html-скриптов в Jupyter Notebook
  10. CSV строка разделение в Python
  11. Взаимодействие с sys
  12. Извлечение новостей с помощью newspaper3k
  13. Работа с кортежами в Python
  14. Удаление falsy-значений из списка с помощью filter
  15. Добавление элемента в список.
  16. Фильтрация списков с itertools
  17. Работа с timedelta
  18. Метод сравнения объектов в Python
  19. Поиск HTML-элементов с BeautifulSoup
  20. Python Метод sleep() времени
  21. Работа с CSV в Python
  22. Методы __repr__ и __str__ в Python
  23. Форматирование даты с strftime()
  24. Оператор Walrus: правильное использование
  25. Оператор continue в Python
  26. JMESPath в Python
  27. Создание новых списков
  28. Генерация строк с .join()
  29. Импорт модулей в Python 3.12
  30. Проблема с изменяемыми аргументами
  31. Отладка кода
  32. Работа с прокси в Python
  33. Декодирование байтов в строку
  34. Оператор «моржа» (Walrus Operator)
  35. Измерение времени выполнения кода
  36. Генераторные функции в Python
  37. Установка максимального количества цифр
  38. Генератор надежных паролей
  39. Именованные срезы в Python
  40. Работа с контекстными менеджерами
  41. Комментарии в Python
  42. Progress с библиотекой tqdm
  43. Преобразование текста в нижний регистр
  44. Python enumerate() функции
  45. Управление доступом к модулю
  46. Лямбда-функции в Python

Marketello читают маркетологи из крутых компаний