Тест-кейс для Loginview с использованием ModelViewSet или GenericViewset

Я пытаюсь написать тесткейс для логина в django rest framework. Я пробовал искать в сети, где я пробовал с APIClient, django-Client, Factory, но не получил результата. Я получаю следующий ответ:

{'non_field_errors': [ErrorDetail(string='Unable to log in with provided credentials.', code='authorization')]}

даже после предоставления правильных учетных данных

Вот файл моего тестового примера:

"""
Test cases for Login
"""
import json
from django.urls import reverse
from django.test import TestCase
from rest_framework.test import APIClient


class LoginTest(TestCase):
    """
    Login test cases
    """

    def setUp(self):
        """
        Setup data for the login test cases
        """
        self.valid_payload = json.dumps(
            {"username": "admin@ksbsgroup.com", "password": "dell@123"}
        )
        self.url = reverse("users:login-list")

    def test_valid_login(self):
        """
        Test login with a valid login
        """
        client = APIClient()
        response = client.post(
            self.url, data=self.valid_payload, content_type="application/json"
        )
        print(response.data)
        self.assertEqual(response.status_code, 200)

Мой взгляд на вход выглядит следующим образом:

"""
Login view
"""
import logging
from rest_framework import viewsets, status
from rest_framework.response import Response
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.authtoken.models import Token
from common import messages

log = logging.getLogger(__name__)


class LoginViewSet(ObtainAuthToken, viewsets.GenericViewSet):
    """
    Login view set for login
    """

    def create(self, request):
        """
        Login the user with the specified email and password.

        parameters:
        --------------------
        email(str): Email address to login
        password(str): Password of the user

        returns:
        --------------------
        dict: json dictionary
        """
        serializer = self.serializer_class(
            data=request.data, context={"request": request}
        )
        serializer.is_valid(raise_exception=True)
        user = serializer.validated_data.get("user")
        token, _ = Token.objects.get_or_create(user=user)
        log.info(messages.LOG_USER_LOGIN.format(user))
        return Response(
            {
                "message": messages.INFO_SUCCESS,
                "token": token.key,
                "user": user.id,
                "email": user.email,
                "status": status.HTTP_200_OK,
            }
        )

файл url моего приложения: """ Url пути для приложения Users """

from rest_framework.routers import DefaultRouter
from .views.login import LoginViewSet

router = DefaultRouter()

router.register("login", LoginViewSet, basename="login")

urlpatterns = [] + router.urls

и файл urls моего проекта:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("users/", include(("users.urls", "users"), namespace="users")),
]
Вернуться на верх