Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Проблемы с python mock для библиотеки uuid1

pytest
mock
python
Теги: #<Tag:0x00007f7b63b63ad8> #<Tag:0x00007f7b63b63970> #<Tag:0x00007f7b63b63768>

(ArtemIljin) #1

Коллеги, может кто-нибудь сможет объяснить, а может кому-то пригодится.

Делал mock в py.test для uuid1 нужно для тестирования записи в Cassandra. Наткнулся на следующую проблему:

test_a:
  нет mock

test_b:
  mock time(freezegun или libfaketime или monkeypatch time.time)

test_c:
  нет mock

все тесты вызывают uuid1. При запуске тестов в порядке test_a/test_b/test_c в test_b не использовалось время mock. При удалении test_a и запуска test_b/test_c в test_c попадало время из mock test_b.

после дебага было выяснено, что сторонние либы freezegun и libfaketime не будут работать в данном случае, нужно пользовать monkeypatch и патчить как time.time, так и uuid._last_timestamp После этого все заработало.