Код Middle Тестирование и pytest обновлено

Мини-раннер параметризованных тестов

Условие

Реализуйте упрощённый parametrize: run_cases(func_name, cases) берёт функцию из словаря FUNCS, вызывает её на каждом наборе аргументов и возвращает отчёт {"passed": n, "failed": [индексы упавших], "errors": [индексы, где было исключение]}. Случай [args, expected]. Исключение не прерывает прогон.

Примеры

run_cases("div", [[[6, 3], 2], [[7, 2], 3], [[1, 0], 0]]) // {"passed":2,"failed":[],"errors":[2]}
run_cases("upper", [[["a"], "A"], [["b"], "b"]]) // {"passed":1,"failed":[1],"errors":[]}
run_cases("head", [[[[]], null], [[[5]], 5]]) // {"passed":1,"failed":[],"errors":[0]}

Как подойти

Подсказки: 1
  1. try/except вокруг вызова каждого случая.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме