关于自定义模型管理器方法的Django单元测试

时间:2016-07-28 10:47:26

标签: python django unit-testing

我在python和django中很新。

我有自定义模型管理器的模型和方法,我正在筹集 ValidationError关于一些例外情况。现在我想测试这个自定义管理器方法。但是在测试django模型的海关管理器方法方面不知道如何捕获ValidationError或任何其他错误。

我的情景如下所示,

class CustomModelManager(model.Manager):

    def custom_method(self):
        #for some exception
        raise ValidationError('a sample validation error')

class SampleModel(models.Model):
    ###fields
    objects = CustomModelManager()

我已尝试过以下单元测试,但它不起作用,

def test_samle_model(self):
    issues = Issues.objects.custom_method(field1='wrong field')###this will raise that validationError
    self.assertEqualValidationError, 'a sample validation error')

是否有可能捕获'任何错误'进行测试?或者我错过了什么?

2 个答案:

答案 0 :(得分:1)

使用assertRaises

with self.assertRaises(ValidationError):
   issues = Issues.objects.custom_method(field1='wrong field')

答案 1 :(得分:1)

您想要`assertRaises'

def test_sample_model(self):
     with self.assertRaises(ValidationError):    
         issues = Issues.objects.custom_method(field1='wrong field')