Django如何触发类属性的验证以引发异常
我有这个功能,我正在尝试测试如果折扣金额大于发票金额,那么是否应该引发验证错误。Iam陷入实际触发异常,以便在测试中引发异常。见下文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):
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问题是,如果我不能将属性设置为某个值,我将如何测试异常。。。忽略语法错误问题是,如果不修复,代码会引发其他异常。没关系,我去让你等别人来帮忙…谢谢…让我试试