gpt4 book ai didi

python - 我应该在 Django 模型中测试方法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:54 24 4
gpt4 key购买 nike

是否有任何理由测试模型方法,或者我应该假设 Django 工作正常并且不对它们进行测试?

这是我的模型和它的几个方法:

class SlackTeam(models.Model):
...

def get_user(self, user_id):
return self.users.filter(user_id=user_id).first()

def deactivate(self):
self.active = False
self.initiator.access_token = ''
self.initiator.save()
self.initiator = None
self.deactivated_at = timezone.now()
self.save()

if hasattr(self, 'slackbot'):
self.slackbot.delete()

def set_initiator(self, user):
self.initiator = user
self.save(update_fields=['initiator'])

@classmethod
def initialize(cls, team_id, name):
return cls.objects.update_or_create(
team_id=team_id, defaults={'name': name})[0]

@classmethod
def get_by_team_id(cls, team_id):
return cls.objects.filter(team_id=team_id).first()

最佳答案

您可以放心地假设在 models.Model 基类上定义的方法有效。当然,您自己的方法(自定义方法或重写方法)都必须进行测试。

作为旁注:Django 模型的约定是在管理器上定义在表级别工作的方法,而不是在模型本身上工作,所以至少你的 get_by_team_id 和可能的 initialize 应该在自定义管理器上定义。

关于python - 我应该在 Django 模型中测试方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53079622/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com