Создание и добавление пользователя в группу в Django для проведения тестов

Мне нужно протестировать простой проект Django, в котором пользователи в определенной группе имеют некоторые права. Сейчас в тестах я знаю, как создать макет пользователя, и я уже проверил, что пользователи, не входящие в группу, не могут получить доступ к данным trow API, но теперь мне нужно проверить, что пользователи в группе могут получить доступ к данным. Как я могу создать и добавить макет пользователя в группу?

Заранее спасибо за помощь.

Ниже мой код:

import pytest
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
from django.urls import reverse
from mixer.backend.django import mixer
from rest_framework.status import HTTP_403_FORBIDDEN, HTTP_200_OK
from rest_framework.test import APIClient


@pytest.fixture()
def superheroes(db):
    return [
        mixer.blend('superhero.SuperHero')
    ]


def get_client(user=None):
    res = APIClient()
    if user is not None:
        res.force_login(user)
    return res

# code to test users without permissions (it works!)
def test_anon_user_forbidden():
    path = reverse('superheroes-list')
    client = get_client()
    response = client.get(path)
    assert response.status_code == HTTP_403_FORBIDDEN

# code to test users with permission (so users that are in the group)
def test_avengers_user_ok(superheroes):
    path = reverse('superheroes-list')
    user = mixer.blend(get_user_model())
    # add the user to specific group, but how?
    client = get_client(user)
    response = client.get(path)
    assert response.status_code == HTTP_200_OK
Вернуться на верх