refactor: reformatted all files

This commit is contained in:
ITQ
2025-02-21 08:25:45 +03:00
parent f0e95a4a2b
commit 4356994003
12 changed files with 91 additions and 80 deletions
@@ -1,7 +1,7 @@
from http import HTTPStatus as status from http import HTTPStatus as status
from uuid import UUID from uuid import UUID
from django.http import HttpRequest, Http404 from django.http import Http404, HttpRequest
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from ninja import Router from ninja import Router
@@ -1,5 +1,4 @@
from typing import ClassVar from typing import Any, ClassVar
from typing import Any
from uuid import UUID from uuid import UUID
from ninja import ModelSchema, Schema from ninja import ModelSchema, Schema
@@ -1,6 +1,6 @@
from decimal import ROUND_HALF_UP, Decimal
from uuid import UUID from uuid import UUID
from decimal import Decimal, ROUND_HALF_UP
from django.core.cache import cache from django.core.cache import cache
from django.db import models from django.db import models
@@ -120,30 +120,32 @@ class Advertiser(BaseModel):
else Decimal("0") else Decimal("0")
) )
daily_stats.append({ daily_stats.append(
"date": date, {
"impressions_count": metrics["impressions_count"], "date": date,
"clicks_count": metrics["clicks_count"], "impressions_count": metrics["impressions_count"],
"conversion": float( "clicks_count": metrics["clicks_count"],
conversion.quantize( "conversion": float(
Decimal("0.01"), rounding=ROUND_HALF_UP conversion.quantize(
) Decimal("0.01"), rounding=ROUND_HALF_UP
), )
"spent_impressions": float( ),
metrics["spent_impressions"].quantize( "spent_impressions": float(
Decimal("0.0000000001"), rounding=ROUND_HALF_UP metrics["spent_impressions"].quantize(
) Decimal("0.0000000001"), rounding=ROUND_HALF_UP
), )
"spent_clicks": float( ),
metrics["spent_clicks"].quantize( "spent_clicks": float(
Decimal("0.0000000001"), rounding=ROUND_HALF_UP metrics["spent_clicks"].quantize(
) Decimal("0.0000000001"), rounding=ROUND_HALF_UP
), )
"spent_total": float( ),
total_spent.quantize( "spent_total": float(
Decimal("0.0000000001"), rounding=ROUND_HALF_UP total_spent.quantize(
) Decimal("0.0000000001"), rounding=ROUND_HALF_UP
), )
}) ),
}
)
return sorted(daily_stats, key=lambda item: item["date"]) return sorted(daily_stats, key=lambda item: item["date"])
@@ -1,6 +1,7 @@
from uuid import uuid4 from uuid import uuid4
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from django.core.cache import cache
from apps.advertiser.models import Advertiser from apps.advertiser.models import Advertiser
from apps.campaign.models import Campaign from apps.campaign.models import Campaign
@@ -9,14 +10,14 @@ class AdvertiserModelTest(TestCase):
def setUp(self) -> None: def setUp(self) -> None:
self.advertiser = Advertiser.objects.create(name="Test Advertiser") self.advertiser = Advertiser.objects.create(name="Test Advertiser")
def test_advertiser_creation(self): def test_advertiser_creation(self) -> None:
self.assertIsInstance(self.advertiser, Advertiser) self.assertIsInstance(self.advertiser, Advertiser)
self.assertEqual(self.advertiser.name, "Test Advertiser") self.assertEqual(self.advertiser.name, "Test Advertiser")
def test_advertiser_str_method(self): def test_advertiser_str_method(self) -> None:
self.assertEqual(str(self.advertiser), "Test Advertiser") self.assertEqual(str(self.advertiser), "Test Advertiser")
def test_advertiser_id_property(self): def test_advertiser_id_property(self) -> None:
self.assertEqual(self.advertiser.advertiser_id, self.advertiser.id) self.assertEqual(self.advertiser.advertiser_id, self.advertiser.id)
new_id = uuid4() new_id = uuid4()
@@ -30,9 +31,7 @@ class AdvertiserModelTest(TestCase):
} }
} }
) )
def test_advertiser_campaigns_relationship(self): def test_advertiser_campaigns_relationship(self) -> None:
loll = cache.get("current_date", 0)
campaign = Campaign.objects.create( campaign = Campaign.objects.create(
advertiser=self.advertiser, advertiser=self.advertiser,
impressions_limit=0, impressions_limit=0,
@@ -1,7 +1,8 @@
from django.core.cache import cache from django.core.cache import cache
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from apps.advertiser.models import Advertiser from apps.advertiser.models import Advertiser
from apps.campaign.models import Campaign, CampaignImpression, CampaignClick from apps.campaign.models import Campaign, CampaignClick, CampaignImpression
from apps.client.models import Client from apps.client.models import Client
@@ -14,7 +15,7 @@ class AdvertiserStatisticsTest(TestCase):
} }
} }
) )
def setUpTestData(cls): def setUpTestData(cls) -> None:
cache.set("current_date", 1) cache.set("current_date", 1)
cls.advertiser = Advertiser.objects.create(name="Test Advertiser") cls.advertiser = Advertiser.objects.create(name="Test Advertiser")
@@ -54,7 +55,7 @@ class AdvertiserStatisticsTest(TestCase):
} }
} }
) )
def setUp(self): def setUp(self) -> None:
cache.clear() cache.clear()
cache.set("current_date", 5) cache.set("current_date", 5)
@@ -65,7 +66,7 @@ class AdvertiserStatisticsTest(TestCase):
} }
} }
) )
def test_get_statistics_no_data(self): def test_get_statistics_no_data(self) -> None:
stats = self.advertiser.get_statistics() stats = self.advertiser.get_statistics()
expected_stats = { expected_stats = {
"impressions_count": 0, "impressions_count": 0,
@@ -85,7 +86,7 @@ class AdvertiserStatisticsTest(TestCase):
} }
} }
) )
def test_get_statistics_with_data(self): def test_get_statistics_with_data(self) -> None:
CampaignImpression.objects.create( CampaignImpression.objects.create(
campaign=self.campaign1, campaign=self.campaign1,
client=self.client_instance, client=self.client_instance,
@@ -124,7 +125,7 @@ class AdvertiserStatisticsTest(TestCase):
} }
} }
) )
def test_get_daily_statistics_no_data(self): def test_get_daily_statistics_no_data(self) -> None:
daily_stats = self.advertiser.get_daily_statistics() daily_stats = self.advertiser.get_daily_statistics()
expected_stats = [ expected_stats = [
{ {
@@ -148,7 +149,7 @@ class AdvertiserStatisticsTest(TestCase):
} }
} }
) )
def test_get_daily_statistics_with_data(self): def test_get_daily_statistics_with_data(self) -> None:
CampaignImpression.objects.create( CampaignImpression.objects.create(
campaign=self.campaign1, campaign=self.campaign1,
client=self.client_instance, client=self.client_instance,
@@ -1,8 +1,10 @@
from django.test import TestCase, override_settings
from django.core.cache import cache from django.core.cache import cache
from django.test import TestCase, override_settings
from apps.advertiser.models import Advertiser from apps.advertiser.models import Advertiser
from apps.campaign.models import Campaign, CampaignClick from apps.campaign.models import Campaign, CampaignClick
from apps.client.models import Client from apps.client.models import Client
from config.errors import ConflictError
class CampaignClickModelTest(TestCase): class CampaignClickModelTest(TestCase):
@@ -14,7 +16,7 @@ class CampaignClickModelTest(TestCase):
} }
} }
) )
def setUpTestData(cls): def setUpTestData(cls) -> None:
cache.set("current_date", 1) cache.set("current_date", 1)
cls.advertiser = Advertiser.objects.create(name="Test Advertiser") cls.advertiser = Advertiser.objects.create(name="Test Advertiser")
@@ -29,25 +31,25 @@ class CampaignClickModelTest(TestCase):
start_date=1, start_date=1,
end_date=10, end_date=10,
) )
cls.client = Client.objects.create( cls.client_instance = Client.objects.create(
login="test_client", age=15, location="Moscow", gender="FEMALE" login="test_client", age=15, location="Moscow", gender="FEMALE"
) )
cls.click = CampaignClick.objects.create( cls.click = CampaignClick.objects.create(
campaign=cls.campaign, campaign=cls.campaign,
client=cls.client, client=cls.client_instance,
price=0.10, price=0.10,
date=1, date=1,
) )
def test_campaign_click_creation(self): def test_campaign_click_creation(self) -> None:
self.assertIsInstance(self.click, CampaignClick) self.assertIsInstance(self.click, CampaignClick)
self.assertEqual(self.click.price, 0.10) self.assertEqual(self.click.price, 0.10)
def test_unique_together_constraint(self): def test_unique_together_constraint(self) -> None:
with self.assertRaises(Exception): with self.assertRaises(ConflictError):
CampaignClick.objects.create( CampaignClick.objects.create(
campaign=self.campaign, campaign=self.campaign,
client=self.client, client=self.client_instance,
price=0.10, price=0.10,
date=1, date=1,
) )
@@ -1,7 +1,9 @@
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from apps.advertiser.models import Advertiser from apps.advertiser.models import Advertiser
from apps.campaign.models import Campaign, CampaignImpression from apps.campaign.models import Campaign, CampaignImpression
from apps.client.models import Client from apps.client.models import Client
from config.errors import ConflictError
class CampaignImpressionModelTest(TestCase): class CampaignImpressionModelTest(TestCase):
@@ -13,7 +15,7 @@ class CampaignImpressionModelTest(TestCase):
} }
} }
) )
def setUpTestData(cls): def setUpTestData(cls) -> None:
cls.advertiser = Advertiser.objects.create(name="Test Advertiser") cls.advertiser = Advertiser.objects.create(name="Test Advertiser")
cls.campaign = Campaign.objects.create( cls.campaign = Campaign.objects.create(
advertiser=cls.advertiser, advertiser=cls.advertiser,
@@ -26,25 +28,25 @@ class CampaignImpressionModelTest(TestCase):
start_date=1, start_date=1,
end_date=10, end_date=10,
) )
cls.client = Client.objects.create( cls.client_instance = Client.objects.create(
login="test_client", age=15, location="Moscow", gender="FEMALE" login="test_client", age=15, location="Moscow", gender="FEMALE"
) )
cls.impression = CampaignImpression.objects.create( cls.impression = CampaignImpression.objects.create(
campaign=cls.campaign, campaign=cls.campaign,
client=cls.client, client=cls.client_instance,
price=0.05, price=0.05,
date=1, date=1,
) )
def test_campaign_impression_creation(self): def test_campaign_impression_creation(self) -> None:
self.assertIsInstance(self.impression, CampaignImpression) self.assertIsInstance(self.impression, CampaignImpression)
self.assertEqual(self.impression.price, 0.05) self.assertEqual(self.impression.price, 0.05)
def test_unique_together_constraint(self): def test_unique_together_constraint(self) -> None:
with self.assertRaises(Exception): with self.assertRaises(ConflictError):
CampaignImpression.objects.create( CampaignImpression.objects.create(
campaign=self.campaign, campaign=self.campaign,
client=self.client, client=self.client_instance,
price=0.05, price=0.05,
date=1, date=1,
) )
@@ -1,7 +1,9 @@
from uuid import uuid4 from uuid import uuid4
from django.core.cache import cache from django.core.cache import cache
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from apps.advertiser.models import Advertiser from apps.advertiser.models import Advertiser
from apps.campaign.models import Campaign from apps.campaign.models import Campaign
from apps.client.models import Client from apps.client.models import Client
@@ -16,7 +18,7 @@ class CampaignModelTest(TestCase):
} }
} }
) )
def setUpTestData(cls): def setUpTestData(cls) -> None:
cls.advertiser = Advertiser.objects.create(name="Test Advertiser") cls.advertiser = Advertiser.objects.create(name="Test Advertiser")
cls.campaign = Campaign.objects.create( cls.campaign = Campaign.objects.create(
advertiser=cls.advertiser, advertiser=cls.advertiser,
@@ -30,20 +32,20 @@ class CampaignModelTest(TestCase):
end_date=10, end_date=10,
) )
def test_campaign_creation(self): def test_campaign_creation(self) -> None:
self.assertIsInstance(self.campaign, Campaign) self.assertIsInstance(self.campaign, Campaign)
self.assertEqual(self.campaign.ad_title, "Test Campaign") self.assertEqual(self.campaign.ad_title, "Test Campaign")
def test_campaign_str_method(self): def test_campaign_str_method(self) -> None:
self.assertEqual(str(self.campaign), "Test Campaign") self.assertEqual(str(self.campaign), "Test Campaign")
def test_campaign_id_property(self): def test_campaign_id_property(self) -> None:
self.assertEqual(self.campaign.campaign_id, self.campaign.id) self.assertEqual(self.campaign.campaign_id, self.campaign.id)
new_id = uuid4() new_id = uuid4()
self.campaign.campaign_id = new_id self.campaign.campaign_id = new_id
self.assertEqual(self.campaign.id, new_id) self.assertEqual(self.campaign.id, new_id)
def test_ad_id_property(self): def test_ad_id_property(self) -> None:
self.assertEqual(self.campaign.ad_id, self.campaign.id) self.assertEqual(self.campaign.ad_id, self.campaign.id)
@override_settings( @override_settings(
@@ -53,7 +55,7 @@ class CampaignModelTest(TestCase):
} }
} }
) )
def test_started_property(self): def test_started_property(self) -> None:
cache.set("current_date", 5) cache.set("current_date", 5)
self.assertTrue(self.campaign.started) self.assertTrue(self.campaign.started)
cache.set("current_date", 0) cache.set("current_date", 0)
@@ -66,7 +68,7 @@ class CampaignModelTest(TestCase):
} }
} }
) )
def test_active_property(self): def test_active_property(self) -> None:
cache.set("current_date", 5) cache.set("current_date", 5)
self.assertTrue(self.campaign.active) self.assertTrue(self.campaign.active)
cache.set("current_date", 11) cache.set("current_date", 11)
@@ -80,7 +82,7 @@ class CampaignModelTest(TestCase):
} }
} }
) )
def test_clean_method(self): def test_clean_method(self) -> None:
self.campaign.start_date = -1 self.campaign.start_date = -1
with self.assertRaises(ValidationError): with self.assertRaises(ValidationError):
@@ -93,7 +95,7 @@ class CampaignModelTest(TestCase):
} }
} }
) )
def test_view_method(self): def test_view_method(self) -> None:
client = Client.objects.create( client = Client.objects.create(
login="test_client", age=15, location="Moscow", gender="FEMALE" login="test_client", age=15, location="Moscow", gender="FEMALE"
) )
@@ -108,7 +110,7 @@ class CampaignModelTest(TestCase):
} }
} }
) )
def test_click_method(self): def test_click_method(self) -> None:
client = Client.objects.create( client = Client.objects.create(
login="test_client", age=15, location="Moscow", gender="FEMALE" login="test_client", age=15, location="Moscow", gender="FEMALE"
) )
@@ -1,7 +1,9 @@
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from apps.advertiser.models import Advertiser from apps.advertiser.models import Advertiser
from apps.campaign.models import Campaign, CampaignReport from apps.campaign.models import Campaign, CampaignReport
from apps.client.models import Client from apps.client.models import Client
from config.errors import ConflictError
class CampaignReportModelTest(TestCase): class CampaignReportModelTest(TestCase):
@@ -13,7 +15,7 @@ class CampaignReportModelTest(TestCase):
} }
} }
) )
def setUpTestData(cls): def setUpTestData(cls) -> None:
cls.advertiser = Advertiser.objects.create(name="Test Advertiser") cls.advertiser = Advertiser.objects.create(name="Test Advertiser")
cls.campaign = Campaign.objects.create( cls.campaign = Campaign.objects.create(
advertiser=cls.advertiser, advertiser=cls.advertiser,
@@ -33,7 +35,7 @@ class CampaignReportModelTest(TestCase):
location="Test Location", location="Test Location",
) )
def test_campaign_report_creation(self): def test_campaign_report_creation(self) -> None:
report = CampaignReport.objects.create( report = CampaignReport.objects.create(
campaign=self.campaign, campaign=self.campaign,
client=self.client_instance, client=self.client_instance,
@@ -49,15 +51,14 @@ class CampaignReportModelTest(TestCase):
self.assertEqual(report.message, "Inappropriate content") self.assertEqual(report.message, "Inappropriate content")
self.assertTrue(report.flagged_by_llm) self.assertTrue(report.flagged_by_llm)
def test_campaign_report_unique_together_constraint(self) -> None:
def test_campaign_report_unique_together_constraint(self):
CampaignReport.objects.create( CampaignReport.objects.create(
campaign=self.campaign, campaign=self.campaign,
client=self.client_instance, client=self.client_instance,
state=CampaignReport.CampaignReportState.SENT, state=CampaignReport.CampaignReportState.SENT,
) )
with self.assertRaises(Exception): with self.assertRaises(ConflictError):
CampaignReport.objects.create( CampaignReport.objects.create(
campaign=self.campaign, campaign=self.campaign,
client=self.client_instance, client=self.client_instance,
@@ -1,5 +1,6 @@
from django.core.cache import cache from django.core.cache import cache
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from apps.advertiser.models import Advertiser from apps.advertiser.models import Advertiser
from apps.campaign.models import Campaign, CampaignClick, CampaignImpression from apps.campaign.models import Campaign, CampaignClick, CampaignImpression
from apps.client.models import Client from apps.client.models import Client
@@ -14,7 +15,7 @@ class CampaignStatisticsTest(TestCase):
} }
} }
) )
def setUpTestData(cls): def setUpTestData(cls) -> None:
cls.advertiser = Advertiser.objects.create(name="Test Advertiser") cls.advertiser = Advertiser.objects.create(name="Test Advertiser")
cls.campaign = Campaign.objects.create( cls.campaign = Campaign.objects.create(
advertiser=cls.advertiser, advertiser=cls.advertiser,
@@ -41,11 +42,11 @@ class CampaignStatisticsTest(TestCase):
} }
} }
) )
def setUp(self): def setUp(self) -> None:
cache.clear() cache.clear()
cache.set("current_date", 5) cache.set("current_date", 5)
def test_get_statistics_no_data(self): def test_get_statistics_no_data(self) -> None:
stats = self.campaign.get_statistics() stats = self.campaign.get_statistics()
expected_stats = { expected_stats = {
"impressions_count": 0, "impressions_count": 0,
@@ -58,7 +59,7 @@ class CampaignStatisticsTest(TestCase):
self.assertEqual(stats, expected_stats) self.assertEqual(stats, expected_stats)
def test_get_statistics_with_data(self): def test_get_statistics_with_data(self) -> None:
CampaignImpression.objects.create( CampaignImpression.objects.create(
campaign=self.campaign, campaign=self.campaign,
client=self.client_instance, client=self.client_instance,
@@ -90,7 +91,7 @@ class CampaignStatisticsTest(TestCase):
} }
} }
) )
def test_get_daily_statistics_no_data(self): def test_get_daily_statistics_no_data(self) -> None:
daily_stats = self.campaign.get_daily_statistics() daily_stats = self.campaign.get_daily_statistics()
expected_stats = [ expected_stats = [
{ {
@@ -116,7 +117,7 @@ class CampaignStatisticsTest(TestCase):
} }
} }
) )
def test_get_daily_statistics_with_data(self): def test_get_daily_statistics_with_data(self) -> None:
CampaignImpression.objects.create( CampaignImpression.objects.create(
campaign=self.campaign, campaign=self.campaign,
client=self.client_instance, client=self.client_instance,
@@ -1,4 +1,3 @@
from django.core.cache import cache
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
+3
View File
@@ -118,6 +118,9 @@ ignore = [
"FBT001", "FBT001",
"FBT002", "FBT002",
"N813", "N813",
"PLR2004",
"PT009",
"PT027",
"RUF001", "RUF001",
] ]
logger-objects = [] logger-objects = []