💻 ТЕХНОЛОГИИ Разработка Кодинг
67.9K subscribers
535 photos
67 videos
1 file
102 links
🔥 ЕЩЁ БОЛЬШЕ КОНТЕНТА:
t.me/addlist/2EjwwexCDeRlNWNh

💬 ЧАТЫ ДЛЯ ОБЩЕНИЯ:
t.me/addlist/1ZoIIyAsAgkzYjEx

🌐 Реклама / Сотрудничество: @DealAds
Download Telegram
🐍 Мокать время в тестах — та ещё головная боль

Обычный mock для дат в Python выглядит просто только на бумаге. На деле — куча импортов, подмен и танцев с бубном. Тут на сцену выходит time-machine: она буквально телепортирует время внутри теста.

Пример:

@travel("2030-01-01")
def test_future():
assert dt.date.today() == dt.date(2030, 1, 1)


В отличие от freezegun, библиотека не бегает по всему проекту в поисках импортов. Она цепляется прямо к C API CPython и перехватывает функции даты и времени напрямую. Скорость от количества модулей не зависит — в бенчмарках выходит более чем в 100 раз быстрее freezegun на простых сценариях.

Где реально пригодится:

• подписки и платежи
• истечение токенов
• календарные функции
• планировщики задач
• логика с дедлайнами

#Python #тестирование #CPython
2👍1🔥1🥰1👏1