Я получаю ошибку "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

Я буду очень признателен за вашу помощь

моя ошибка

Вернуться на верх