Курс 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. kwargs в Python
  2. Структуры данных в Python
  3. Итерация по итерируемым объектам
  4. Функциональное программирование в Python
  5. Замена текста с помощью sub
  6. Замена переменных в Python
  7. Python enumerate() использование
  8. Декораторы классов
  9. Настройка вывода в Numpy
  10. Преобразование списка в словарь через генератор
  11. Повторение элементов списков
  12. Создание GUI на Tkinter
  13. Разделение строки на подстроки в Python
  14. Принципы LSP и ISP в Python
  15. Атрибуты класса и экземпляра в Python
  16. Работа с пакетами
  17. Создание новых списков через list comprehensions
  18. Возвращение нескольких значений через кортеж или класс
  19. Оператор is в Python
  20. Списки в Python: основы
  21. Метод join() для объединения строк
  22. Применение функций в Python
  23. Поиск индексов подстроки
  24. Удаление и повторная вставка ключа в OrderedDict
  25. Удаление дубликатов из списка
  26. Установка и использование Python-dateutil
  27. Получение атрибутов и методов класса
  28. Хранение данных с помощью dataclasses
  29. Присвоение и ссылки
  30. Анонимные функции Lambda
  31. Фильтрация элементов с помощью islice
  32. Расширение информации об ошибке в Python
  33. Открытие и запись файлов
  34. Форматирование вывода с F-строками
  35. Отправка POST запроса на сервер.
  36. Поиск шаблона в строке
  37. Работа с датой и временем в Python
  38. Лямбда-функции в defaultdict
  39. Вычисление натуральных логарифмов в NumPy
  40. Итераторы в Python
  41. Списковые включения в Python
  42. Принципы Zen Python
  43. Отрицательные индексы списков в Python
  44. Оптимизация поиска в словарях

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