Files
AdNova/solution/services/backend/apps/mlscore/tests.py
T
2025-02-16 12:40:41 +03:00

71 lines
2.1 KiB
Python

from django.test import TestCase
from django.db.utils import IntegrityError
from django.core.exceptions import ValidationError
from config.errors import ConflictError
from apps.advertiser.models import Advertiser
from apps.client.models import Client
from apps.mlscore.models import Mlscore
class MlscoreModelTest(TestCase):
def setUp(self):
self.advertiser = Advertiser.objects.create(name="Test Advertiser")
self.client_obj = Client.objects.create(
login="test_client",
age=25,
location="test_location",
gender=Client.GenderChoices.MALE,
)
def test_create_mlscore(self):
mlscore = Mlscore.objects.create(
advertiser=self.advertiser,
client=self.client_obj,
score=95,
)
self.assertEqual(mlscore.score, 95)
self.assertEqual(str(mlscore), "Test Advertiser | test_client")
def test_mlscore_unique_together_constraint(self):
Mlscore.objects.create(
advertiser=self.advertiser,
client=self.client_obj,
score=80,
)
with self.assertRaises(ConflictError):
Mlscore.objects.create(
advertiser=self.advertiser,
client=self.client_obj,
score=85,
)
def test_delete_advertiser_cascades(self):
mlscore = Mlscore.objects.create(
advertiser=self.advertiser,
client=self.client_obj,
score=90,
)
self.advertiser.delete()
self.assertFalse(Mlscore.objects.filter(id=mlscore.id).exists())
def test_delete_client_cascades(self):
mlscore = Mlscore.objects.create(
advertiser=self.advertiser,
client=self.client_obj,
score=90,
)
self.client_obj.delete()
self.assertFalse(Mlscore.objects.filter(id=mlscore.id).exists())
def test_score_positive_integer_constraint(self):
with self.assertRaises(ValidationError):
Mlscore.objects.create(
advertiser=self.advertiser,
client=self.client_obj,
score=-5,
)