Как создать декоратор, который добавляет зарегистрированного пользователя в функцию? - PullRequest
2 голосов
/ 22 мая 2019

Я пишу тесты для представлений, которые требуют регистрации пользователя.Я хочу написать декоратор для добавить зарегистрированного пользователя к каждому тесту.

Например, вместо записи:

    def test_view_url(cls):
        get_user_model().objects.create_user(username='Paulian', password='yGy2pl12')
        cls.client.login(username='Paulian', password='yGy2pl12')
        response = cls.client.get(cls.home_view_url)
        cls.assertEqual(200, response.status_code)

Я хочу написать:

    @user_is_logged_in
    def test_view_url(cls):
        response = cls.client.get(cls.home_view_url)
        cls.assertEqual(200, response.status_code)

Вот мой текущий и неисправный декоратор:

def user_is_logged_in(func) -> object:
    def wrapper(func):
        c = Client()
        if c.login(username='Paulian', password='yGy2pl12'):
            pass
        else:
            get_user_model().objects.create_user(username='Paulian', password='yGy2pl12')
            c.login(username='Paulian', password='yGy2pl12')
        return wrapper
    return wrapper
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...