test: refactor retriable functions api
Синтаксис:
Retriable(timeout=2, rps=10).call(i2.assert_raft_status, "Follower")
Правила такие:
- Timeout и rps — обязательные аргументы. Конкретные значения полезно указывать в месте вызова. Это делает чтение тескейсов более приятным.
- Синтаксис питона по-прежнему не позволяет объединить несколько ассертов в лямбду, поэтому мы продолжаем объявлять локальные функции (
def do_test()
и подобные). - Вместо whitelist ошибок у нас теперь blacklist:
Retriable(fatal=MyException)
. И то это нужно всего в одном месте.
Funcy остался в test_replication.py
— там руки чешутся над самими тесткейсами поработать, в этот ПР не потащу.
В manual/
тестах тоже есть немного funcy, но тоже потом.
Edited by Yaroslav Dynnikov