t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f748ab7f768> #<Tag:0x00007f748ab7f678> #<Tag:0x00007f748ab7f5b0>

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

Делал 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 После этого все заработало.