Код Middle pytest и фикстуры обновлено

Разбор итоговой строки pytest

Условие

Напишите parse_summary(line), которая разбирает итоговую строку pytest, например

=========== 3 failed, 45 passed, 2 skipped, 1 xfailed in 12.34s ===========

Вернуть словарь с ключами passed, failed, skipped, xfailed, xpassed, errors, warnings, deselected (отсутствующие равны 0) и duration (float, секунды). Слова error и warning в единственном числе считаются как errors и warnings. После времени может идти уточнение в скобках, например in 65.20s (0:01:05).

Примеры

parse_summary("=== 3 failed, 45 passed, 2 skipped, 1 xfailed in 12.34s ===") // {"passed":45,"failed":3,"skipped":2,"xfailed":1,"xpassed":0,"errors":0,"warnings":0,"deselected":0,"duration":12.34}
parse_summary("==== 10 passed in 0.52s ====") // {"passed":10,"failed":0,"skipped":0,"xfailed":0,"xpassed":0,"errors":0,"warnings":0,"deselected":0,"duration":0.52}
parse_summary("== 1 failed, 1 error in 3.00s ==") // {"passed":0,"failed":1,"skipped":0,"xfailed":0,"xpassed":0,"errors":1,"warnings":0,"deselected":0,"duration":3}

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

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

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