Стоит ли тестировать методы в моделях Django? - PullRequest
0 голосов
/ 31 октября 2018

Есть ли основания для тестирования методов модели или я должен предположить, что 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()

1 Ответ

0 голосов
/ 31 октября 2018

Можно смело предположить, что методы, определенные на базовом models.Model классе, работают. Ваши собственные методы - как пользовательские, так и переопределенные - должны быть проверены, конечно.

В качестве примечания: с моделями Django принято определять методы, работающие на уровне таблицы на менеджере, а не на самой модели, поэтому, по крайней мере, ваш get_by_team_id и, возможно, initialize должны быть определены в пользовательском менеджере. ,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...