我对此错误感到非常不安。这是一些背景
我有挑战模型
class Challenge(models.Model):
name = models.CharField(max_length=100)
description = models.CharField(max_length=2000, blank=True, null=True)
author = models.ForeignKey(Member, related_name="challenge_author")
category = models.ForeignKey(ChallengeCategory)
rank = models.DecimalField(max_digits=4, decimal_places=2, blank=True, null=True)
validations = models.ManyToManyField(Member,
through=Validation,
related_name="validated_users",
blank=True)
def update_rank(self):
ranks = [0 if validation.rank is None else int(validation.rank)
for validation
in Validation.objects.filter(challenge__pk=self.id,)]
self.rank = sum(ranks)/len(ranks)
self.save()
我有一个测试来测试update_rank()
def test_update_rank(self):
hello_world = Challenge.objects.get(name="HelloWorld")
hello_world.update_rank()
print(hello_world.rank == 9.00)
self.assertEqual(hello_world.rank, 9.00)
当我进行测试时,我得到:
True
Failure
Traceback (most recent call last):
File "/.../website/tests/test_models.py", line 105, in test_update_validation
self.assertEqual(hello_world.rank, 9.00)
AssertionError: None != 9
因此,根据hello_world.rank
,这意味着9.00
等于print()
但由于某些原因,assertEqual
认为{{1}是} hello_world.rank
我不知道该怎么想。如果您需要更多信息,请不要犹豫。
非常感谢你的帮助。
答案 0 :(得分:1)
根据追溯,test_update_validation
方法失败,而不是您提交的test_update_rank
。