Создание и добавление пользователя в группу в 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