Как написать unittest для функции в Django admin? - PullRequest
2 голосов
/ 08 февраля 2020
class SystemUserAdmin(UserAdmin):
    list_display = ('get_phone',)
​
    def get_phone(self, obj):
        address = obj.cause.address
        return address.phone if address else '-'
    get_phone.short_description = 'Phone'

additional_admin_site.register(User, SystemUserAdmin)

Как проверить функцию get_phone?

Нужно ли мне получить экземпляр SystemUserAdmin для User экземпляра?

1 Ответ

0 голосов
/ 08 февраля 2020
from django.contrib.admin.sites import AdminSite
from django.test import TestCase

from core.admin import SystemUserAdmin
from core.models import User
from core.test.factories import UserFactory


class SystemUserAdminTestCase(TestCase):
    def setUp(self) -> None:
        self.user = UserFactory()

    def test_get_phone(self) -> None:
        user_admin = SystemUserAdmin(model=User, admin_site=AdminSite())
        response = user_admin.get_phone(self.user)
        #...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...