pytest.raises проходит с неправильным исключением - PullRequest
0 голосов
/ 17 октября 2018

В следующем примере я ожидаю, что тест не пройдёт при expecting = NotImplementedError.

import pytest
def fun():
    raise ValueError()

@pytest.mark.parametrize("expecting", [
    (ValueError),
    (NotImplementedError)
])
def test_something( expecting):
    with pytest.raises(ValueError):
        fun()

Но вместо этого он проходит:

test_something[ValueError] PASSED
test_something[NotImplementedError] PASSED

Почему такое поведение и как правильно его использовать?

1 Ответ

0 голосов
/ 17 октября 2018

Ваш тест ничего не делает с expecting.Вы написали with pytest.raises(ValueError):, поэтому pytest всегда ищет ValueError, что и поднимает fun().Возможно, вы хотели написать with pytest.raises(expecting): вместо этого?

...