Django如何触发类属性的验证以引发异常

Django如何触发类属性的验证以引发异常,django,python-3.x,pytest,Django,Python 3.x,Pytest,我有这个功能,我正在尝试测试如果折扣金额大于发票金额,那么是否应该引发验证错误。Iam陷入实际触发异常,以便在测试中引发异常。见下文 class Invoice(models.Model): @property def inv_amount(self): amount = Sum(quantity * price) return amount @property def discount_amount(self):

我有这个功能,我正在尝试测试如果折扣金额大于发票金额,那么是否应该引发验证错误。Iam陷入实际触发异常,以便在测试中引发异常。见下文

class Invoice(models.Model):
    @property   
    def inv_amount(self):
        amount = Sum(quantity * price)
        return amount

    @property
    def discount_amount(self):
        amount = Sum(discount)
        return amount  

    def validate_amount(self):
        if self.discount_amount > self.inv_amount:
            raise ValidationError("discount amount cannot be greater")

def_test_validate_amount_greater_than_discount():
    with pytest.raises(ValidationError) as e:
       #Trigger the exception

要触发异常,只需在
中调用
i.validate_amount()
(作为
i
一个发票对象,其值不正确)

此外,您还可以使用
e
检查这一个是否是您的

编辑(基于您问题的评论):


您不能设置属性,但可以设置值
数量
价格
折扣
,使其失败,前提是这些值是类
发票

@Patrick Artner的一部分edited@PatrickArtner问题是,如果我不能将属性设置为某个值,我将如何测试异常。。。忽略语法错误问题是,如果不修复,代码会引发其他异常。没关系,我去让你等别人来帮忙…谢谢…让我试试