Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Commit 0a0e235

Browse files
committed
Remove usage of ReportDetails/files_array
This removes all usage of `ReportDetails`. The base definitions still exist.
1 parent f8ac094 commit 0a0e235

File tree

4 files changed

+7
-66
lines changed

4 files changed

+7
-66
lines changed

graphql_api/actions/commits.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,12 @@ def commit_status(
8080
def repo_commits(
8181
repository: Repository, filters: Optional[dict] = None
8282
) -> QuerySet[Commit]:
83-
# prefetch the CommitReport with the ReportLevelTotals and ReportDetails
83+
# prefetch the CommitReport with the ReportLevelTotals
8484
prefetch = Prefetch(
8585
"reports",
8686
queryset=CommitReport.objects.coverage_reports()
8787
.filter(code=None)
88-
.select_related("reportleveltotals", "reportdetails")
89-
.defer("reportdetails___files_array"),
88+
.select_related("reportleveltotals"),
9089
)
9190

9291
# We don't select the `report` column here b/c it can be many MBs of JSON

graphql_api/dataloader/commit.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,15 @@ def __init__(self, info, repository_id, *args, **kwargs):
1616
super().__init__(info, *args, **kwargs)
1717

1818
def batch_queryset(self, keys):
19-
# We don't select the `report` or `files_array` columns here b/c then can be
19+
# We don't select the `report` column here b/c then can be
2020
# very large JSON blobs and cause performance issues
2121

22-
# prefetch the CommitReport with the ReportLevelTotals and ReportDetails
22+
# prefetch the CommitReport with the ReportLevelTotals
2323
prefetch = Prefetch(
2424
"reports",
2525
queryset=CommitReport.objects.coverage_reports()
2626
.filter(code=None)
27-
.select_related("reportleveltotals", "reportdetails")
28-
.defer("reportdetails___files_array"),
27+
.select_related("reportleveltotals"),
2928
)
3029

3130
return (

services/comparison.py

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from compare.models import CommitComparison
2323
from core.models import Commit
24-
from reports.models import CommitReport, ReportDetails
24+
from reports.models import CommitReport
2525
from services import ServiceException
2626
from services.redis_configuration import get_redis_connection
2727
from services.repo_providers import RepoProviderService
@@ -1208,18 +1208,6 @@ def needs_recompute(self) -> bool:
12081208
if self._last_updated_before(self.base_commit.updatestamp):
12091209
return True
12101210

1211-
compare_commit_details = self._commit_report_details(self.compare_commit)
1212-
if compare_commit_details is not None and self._last_updated_before(
1213-
compare_commit_details.updated_at
1214-
):
1215-
return True
1216-
1217-
base_commit_details = self._commit_report_details(self.base_commit)
1218-
if base_commit_details is not None and self._last_updated_before(
1219-
base_commit_details.updated_at
1220-
):
1221-
return True
1222-
12231211
return False
12241212

12251213
def _last_updated_before(self, timestamp: datetime) -> bool:
@@ -1237,22 +1225,10 @@ def _last_updated_before(self, timestamp: datetime) -> bool:
12371225

12381226
return timezone.normalize(self.commit_comparison.updated_at) < timestamp
12391227

1240-
def _commit_report_details(self, commit: Commit) -> Optional[ReportDetails]:
1241-
# CommitDetails records are updated by the worker every time a new upload is processed.
1242-
# We can use the `updated_at` timestamp as a proxy for when a report was last updated.
1243-
# These are expected to have been preloaded.
1244-
if hasattr(commit, "commitreport") and hasattr(
1245-
commit.commitreport, "reportdetails"
1246-
):
1247-
return commit.commitreport.reportdetails
1248-
12491228
def _load_commit(self, commit_id: int) -> Optional[Commit]:
12501229
prefetch = Prefetch(
12511230
"reports",
1252-
queryset=CommitReport.objects.coverage_reports()
1253-
.filter(code=None)
1254-
.select_related("reportdetails")
1255-
.defer("reportdetails___files_array"),
1231+
queryset=CommitReport.objects.coverage_reports().filter(code=None),
12561232
)
12571233
return (
12581234
Commit.objects.filter(pk=commit_id)

services/tests/test_comparison.py

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
from compare.models import CommitComparison
2424
from compare.tests.factories import CommitComparisonFactory
2525
from core.models import Commit
26-
from reports.models import ReportDetails
2726
from reports.tests.factories import CommitReportFactory
2827
from services.comparison import (
2928
CommitComparisonService,
@@ -1792,14 +1791,6 @@ def setUp(self):
17921791
self.compare_commit = CommitFactory(updatestamp=datetime(2023, 1, 1))
17931792
self.base_commit_report = CommitReportFactory(commit=self.base_commit)
17941793
self.compare_commit_report = CommitReportFactory(commit=self.compare_commit)
1795-
self.base_report_details = ReportDetails.objects.create(
1796-
report_id=self.base_commit_report.id,
1797-
_files_array=[],
1798-
)
1799-
self.compare_report_details = ReportDetails.objects.create(
1800-
report_id=self.compare_commit_report.id,
1801-
_files_array=[],
1802-
)
18031794
self.commit_comparison = CommitComparisonFactory(
18041795
base_commit=self.base_commit,
18051796
compare_commit=self.compare_commit,
@@ -1841,27 +1832,3 @@ def test_stale_compare_commit(self):
18411832
service = CommitComparisonService(commit_comparison)
18421833

18431834
assert service.needs_recompute() == True
1844-
1845-
def test_stale_base_report_details(self):
1846-
# base report details were updated after comparison was made
1847-
self.commit_comparison.updated_at = datetime(2021, 1, 1, tzinfo=pytz.utc)
1848-
self.commit_comparison.save()
1849-
self.base_report_details.updated_at = datetime(2023, 1, 2, tzinfo=pytz.utc)
1850-
self.base_report_details.save()
1851-
1852-
commit_comparison = CommitComparison.objects.get(pk=self.commit_comparison.pk)
1853-
service = CommitComparisonService(commit_comparison)
1854-
1855-
assert service.needs_recompute() == True
1856-
1857-
def test_stale_compare_report_details(self):
1858-
# compare report details were updated after comparison was made
1859-
self.commit_comparison.updated_at = datetime(2021, 1, 1, tzinfo=pytz.utc)
1860-
self.commit_comparison.save()
1861-
self.compare_report_details.updated_at = datetime(2023, 1, 2, tzinfo=pytz.utc)
1862-
self.compare_report_details.save()
1863-
1864-
commit_comparison = CommitComparison.objects.get(pk=self.commit_comparison.pk)
1865-
service = CommitComparisonService(commit_comparison)
1866-
1867-
assert service.needs_recompute() == True

0 commit comments

Comments
 (0)