Проверить, был ли ValidationError поднят
Я хочу проверить, было ли возбуждено исключение, как я могу это сделать?
в моих models.py У меня есть эта функция, которую я хочу проверить:
def validate_percent(value):
if not (value >= 0 and value <= 100):
raise ValidationError('error')
в моих tests.py Я попробовал это:
def test_validate_percent(self):
self.assertRaises(ValidationError, validate_percent(1000))
выход теста:
..E
======================================================================
ERROR: test_validate_percent (tm.tests.models.helpers.HelpersTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/...py", line 21, in test_validate_percent
self.assertRaises(ValidationError, validate_percent(1000))
File "/....py", line 25, in validate_percent
raise ValidationError(u'error' % value)
ValidationError: ['error']
Ответы
Ответ 1
assertRaises
используется как менеджер контекста:
def test_validate_percent(self):
with self.assertRaises(ValidationError):
validate_percent(1000)
или с вызываемым:
def test_validate_percent(self):
self.assertRaises(ValidationError, validate_percent, 1000)
Ответ 2
def test_validate_percent(self):
self.assertRaises(ValidationError, validate_percent, 1000)