Я думаю, что есть проблема, связанная с логикой модульного теста.
Если вы ожидаете конкретного исключения при определенных входных данных, вы объявляете его как ожидаемое исключение. Если вы просто проверяете, правильно ли работает ваша функция и не ожидается никаких исключений во время этого правильного поведения, вы просто пишете ее и, если она выдает какое-либо исключение, ваш тест не пройден.
Ваш код, кажется, работает правильно, с другой стороны, только проверка отсутствия исключений может быть неправильным способом для модульного тестирования. В модульных тестах обычно ожидаются некоторые выходные данные (ожидаемые значения), у вас есть некоторые фактические выходные данные (фактические значения), и вы утверждаете, что ожидаемые и фактические значения совпадают.