feat: added mlscore app
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
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,
|
||||
)
|
||||
Reference in New Issue
Block a user