Я получаю ошибку "not NULL Constraint error" только в моем модульном тесте
Мне нужна помощь. Моя система регистрации работает совершенно нормально, когда я запускаю на локальном сервере, но когда я запускаю тест. Он терпит неудачу. Я не понимаю, почему? Я не могу понять, что не так, я удалил всю базу данных и миграции. даже создал новое приложение и все сделал там. Но все равно, я получаю эту ошибку.
Мой test_setup.py
from rest_framework.test import APITestCase
from django.urls import reverse
class TestSetup(APITestCase):
def setUp(self):
self.register_url = '/register/'
self.user_data = {"Username":"frontend123", "First name":"Frontend", "Last
name":"Developer", "Password":"bitspro##1", "Confirm
password":"bitspro##1","Email":"rida@bitspro.com","Date of
birth":"1997-12-27"}
return super().setUp()
def tearDown(self):
return super().tearDown()
Мой testViews.py
from authentication.models import User
from authentication.tests.test_setup import TestSetup
class TestViews(TestSetup):
def test_user_cannot_register_without_any_data(self):
res = self.client.post(self.register_url)
self.assertEqual(res.status_code, 400)
def test_user_can_register_correctly(self):
res = self.client.post(self.register_url, self.user_data, format="json")
self.assertEqual(res.status_code, 201)
Мой view.py (я тестирую только систему регистрации
)
from rest_framework.response import Response
from rest_framework.views import APIView
from authentication.models import User as Client
class Register(APIView):
def post(self, request):
username = request.data.get('Username')
first_name = request.data.get('First name')
last_name = request.data.get('Last name')
password = request.data.get('Password')
confirm_password = request.data.get('Confirm password')
date_of_birth = request.data.get('Date of birth')
email = request.data.get('Email')
if password == confirm_password:
if Client.objects.filter(username = username).exists():
return Response({"message": "this username already exist"}, 400)
elif Client.objects.filter(email = email).exists():
return Response({"message": "This email-address is already taken"}, 400)
else:
user= Client.objects.create(username = username, password =password, email=email,
date_of_birth=date_of_birth)
user.save()
return Response({"message":"User has been created"}, 201)
else:
return Response({"message": "Try it again"}, 404)
my urls.py
from django.urls import path
from authentication.views import Login, Logout, Register, Password_Reset
urlpatterns = [
path('register/', Register.as_view(), name = "register"),
]
Мой models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
email = models.EmailField(verbose_name="Email", max_length=60, unique=True)
date_of_birth= models.DateField(verbose_name="Date of Birth", max_length=10)
def __str__(self):
return self.username
Я буду очень признателен за вашу помощь
моя ошибка