perf: eliminate source health N plus one queries
This commit is contained in:
@@ -111,6 +111,25 @@ def test_collect_source_health_exposes_parser_and_counts(source):
|
||||
assert row.updated_count == 1
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_collect_source_health_prefetches_runs_for_all_sources(source, django_assert_num_queries):
|
||||
second_source = Source.objects.create(
|
||||
name="Second jobs",
|
||||
source_type=Source.Type.EMPLOYER,
|
||||
base_url="https://second.example.org/jobs/",
|
||||
domain="second.example.org",
|
||||
status=Source.Status.ACTIVE,
|
||||
policy=Source.Policy.ALLOW,
|
||||
)
|
||||
_create_run(source, status=SourceRun.Status.SUCCESS)
|
||||
_create_run(second_source, status=SourceRun.Status.SUCCESS)
|
||||
|
||||
with django_assert_num_queries(2):
|
||||
rows = collect_source_health()
|
||||
|
||||
assert [row.source_name for row in rows] == ["Example jobs", "Second jobs"]
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_recover_source_health_starts_canary_once(source, monkeypatch):
|
||||
source.status = Source.Status.QUARANTINED
|
||||
|
||||
Reference in New Issue
Block a user