Во всех тестовых примерах возникает ошибка утверждения: 401 !=200 django
У меня есть пользовательская абстрактная база пользователей и базовый логин с knox view, я сделал несколько простых тестов для процесса регистрации и входа, однако все тесты не работают с ошибкой assertion error:401!=200 и когда я использую pdb.set_trace, чтобы узнать отправленные данные, всегда возникает эта ошибка
(Pdb) res
<Response status_code=401, "application/json">
(Pdb) res.data
{'detail': ErrorDetail(string='Authentication credentials were not provided.', code='not_authenticated')}
Вот тестовая установка
from rest_framework.test import APITestCase
from django.urls import reverse
class TestSetUp(APITestCase):
def setUp(self):
self.register_url = reverse('knox_register')
self.login_url = reverse('knox_login')
self.correct_data = {
'email':"user@gmail.com",
'password': "Abc1234#",
}
self.wrong_email_format = {
'email': "user@gmail",
'password': "Abc1234#",
}
self.missing_data = {
'email':"user@gmail.com",
'password':"",
}
self.wrong_password_format = {
'email': "user@gmail.com",
'password': "123",
}
return super().setUp()
def tearDown(self):
return super().tearDown()
и test_view
from .test_setup import TestSetUp
import pdb
class TestViews(TestSetUp):
#register with no data
def test_user_cannot_register_with_no_data(self):
res = self.client.post(self.register_url)
self.assertEqual(res.status_code,400)
#register with correct data
def test_user_register(self):
self.client.force_authenticate(None)
res = self.client.post(
self.register_url, self.correct_data, format="json")
#pdb.set_trace()
self.assertEqual(res.status_code,200)
#register with wrong email format
def test_register_with_wrong_email_format(self):
res = self.client.post(
self.register_url, self.wrong_email_format)
self.assertEqual(res.status_code, 400)
# register with wrong password format
def test_register_with_wrong_password_format(self):
res = self.client.post(
self.register_url, self.wrong_password_format)
self.assertEqual(res.status_code, 400)
#register with missing_data
def test_register_with_missing_data(self):
res = self.client.post(
self.register_url, self.missing_data)
self.assertEqual(res.status_code, 400)
#login with correct Credentials
def test_user_login(self):
self.client.post(
self.register_url, self.correct_data,format="json")
res = self.client.post(
self.login_url,self.correct_data, format="json")
#pdb.set_trace()
self.assertEqual(res.status_code,200)
# login with no Credentials
def test_login(self):
res = self.client.post(
self.login_url, self.correct_data, format="json")
# pdb.set_trace()
self.assertEqual(res.status_code, 400)
#login with no data
def test_user_cannot_login_with_no_data(self):
res = self.client.post(self.login_url)
self.assertEqual(res.status_code,400)
Какие классы разрешений и аутентификации должны быть определены для представлений входа и регистрации? Если для представлений не определены классы, они будут использовать значения по умолчанию. Пожалуйста, смотрите https://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/#authenticating-with-the-api