Django TestCase проверяет ValidationError с помощью assertRaises in is throwing ValidationError
У меня есть модель, в которой я переопределил функцию сохранения примерно так:
class MyModel(models.Model):
number = models.PositiveIngeter()
def save(self,*args, **kwargs)
if self.number > 10:
super().save(*args, **kwargs)
else:
raise ValidationError('msg')
а функция, которую я тестирую, имеет вид
def test_number(self):
myModel = MyModel(number=5)
self.asserRaises(ValidationError,myModel.save())
the error i got is like this:
ERROR: test_number(apps.players.tests.test_models.CityDetailTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/sagar/project/apps/players/tests/test_models.py", line 738, in test_city_detail_when_tier_is_not_allowed
myModel.save()
File "/home/sagar/.pyenv/versions/3.5.9/lib/python3.5/contextlib.py", line 30, in inner
return func(*args, **kwds)
File "/home/sagar/project/apps/players/models.py", line 2452, in save
raise ValidationError("msg")
rest_framework.exceptions.ValidationError: ['msg']
Я новичок в Django и не могу понять, что здесь не так
Вам не нужно вызывать метод, просто передайте его в качестве параметра:
self.asserRaises(ValidationError, myModel.save)