Как использовать pytest, чтобы проверить, НЕ возникает ли ошибкаPython

Программы на Python
Ответить
Anonymous
 Как использовать pytest, чтобы проверить, НЕ возникает ли ошибка

Сообщение Anonymous »

Предположим, у нас есть что-то подобное:

Код: Выделить всё

import py, pytest

ERROR1 = ' --- Error : value < 5! ---'
ERROR2 = ' --- Error : value > 10! ---'

class MyError(Exception):
def __init__(self, m):
self.m = m

def __str__(self):
return self.m

def foo(i):
if i < 5:
raise MyError(ERROR1)
elif i > 10:
raise MyError(ERROR2)
return i

# ---------------------- TESTS -------------------------
def test_foo1():
with pytest.raises(MyError) as e:
foo(3)
assert ERROR1 in str(e)

def test_foo2():
with pytest.raises(MyError) as e:
foo(11)
assert ERROR2 in str(e)

def test_foo3():
....
foo(7)
....
Вопрос: Как я могу заставить test_foo3() проверять, что MyError не возникает?
Очевидно, что я мог бы просто проверить:

Код: Выделить всё

def test_foo3():
assert foo(7) == 7
но я хочу проверить это с помощью pytest.raises(). Возможно ли это как-нибудь?
Например: в случае, когда функция "foo" вообще не имеет возвращаемого значения,

Код: Выделить всё

def foo(i):
if i < 5:
raise MyError(ERROR1)
elif i > 10:
raise MyError(ERROR2)
имхо, возможно, имеет смысл протестировать таким образом.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»