Skip to content

test: refactor retriable functions api

Yaroslav Dynnikov requested to merge pytest-retriable into master

Синтаксис:

Retriable(timeout=2, rps=10).call(i2.assert_raft_status, "Follower")

Правила такие:

  1. Timeout и rps — обязательные аргументы. Конкретные значения полезно указывать в месте вызова. Это делает чтение тескейсов более приятным.
  2. Синтаксис питона по-прежнему не позволяет объединить несколько ассертов в лямбду, поэтому мы продолжаем объявлять локальные функции (def do_test() и подобные).
  3. Вместо whitelist ошибок у нас теперь blacklist: Retriable(fatal=MyException). И то это нужно всего в одном месте.

Funcy остался в test_replication.py — там руки чешутся над самими тесткейсами поработать, в этот ПР не потащу.

В manual/ тестах тоже есть немного funcy, но тоже потом.

Edited by Yaroslav Dynnikov

Merge request reports