test(reports): freeze date-sensitive report view cases

This commit is contained in:
2026-05-01 01:54:13 +03:30
parent fb15a16204
commit df9a183823

View File

@@ -89,6 +89,10 @@ class ReportViewTests(APITestCase):
def test_member_only_sees_own_chart_report(self):
self.client.force_authenticate(user=self.member)
with patch(
"apps.reports.services.aggregation.timezone.localdate",
return_value=date(2026, 4, 20),
):
response = self.client.get(
"/api/reports/chart/",
{"workspace": str(self.workspace.id), "period": "this_month"},
@@ -100,6 +104,10 @@ class ReportViewTests(APITestCase):
def test_admin_can_request_combined_table_report(self):
self.client.force_authenticate(user=self.admin)
with patch(
"apps.reports.services.aggregation.timezone.localdate",
return_value=date(2026, 4, 20),
):
response = self.client.get(
"/api/reports/table/",
{"workspace": str(self.workspace.id), "period": "this_month"},
@@ -139,6 +147,10 @@ class ReportViewTests(APITestCase):
currency="USD",
)
with patch(
"apps.reports.services.aggregation.timezone.localdate",
return_value=date(2026, 4, 20),
):
response = self.client.get(
"/api/reports/table/",
{
@@ -218,6 +230,10 @@ class ReportViewTests(APITestCase):
url = "/api/reports/table/"
params = {"workspace": str(self.workspace.id), "period": "this_month"}
with patch(
"apps.reports.services.aggregation.timezone.localdate",
return_value=date(2026, 4, 20),
):
first_response = self.client.get(url, params)
self.assertEqual(first_response.status_code, 200)
self.assertEqual(first_response.data["summary"]["total_duration"], "03:00:00")
@@ -225,6 +241,10 @@ class ReportViewTests(APITestCase):
member_entry = TimeEntry.objects.get(description="Member work")
TimeEntry.objects.filter(id=member_entry.id).update(duration=timedelta(hours=5))
with patch(
"apps.reports.services.aggregation.timezone.localdate",
return_value=date(2026, 4, 20),
):
cached_response = self.client.get(url, params)
self.assertEqual(cached_response.status_code, 200)
self.assertEqual(cached_response.data["summary"]["total_duration"], "03:00:00")
@@ -233,6 +253,10 @@ class ReportViewTests(APITestCase):
member_entry.description = "Member work updated"
member_entry.save(update_fields=["description"])
with patch(
"apps.reports.services.aggregation.timezone.localdate",
return_value=date(2026, 4, 20),
):
fresh_response = self.client.get(url, params)
self.assertEqual(fresh_response.status_code, 200)
self.assertEqual(fresh_response.data["summary"]["total_duration"], "07:00:00")