From 0aca341805700a2ead53e94761a07dbc57c5fe67 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Thu, 26 Jun 2025 17:49:17 -0700 Subject: [PATCH] pytest fixes --- app/dao/jobs_dao.py | 4 +++- tests/app/dao/test_jobs_dao.py | 12 +++++++++--- tests/app/job/test_rest.py | 34 ++++++++++++++++++++++++---------- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/app/dao/jobs_dao.py b/app/dao/jobs_dao.py index b35ecf5a6..99c994624 100644 --- a/app/dao/jobs_dao.py +++ b/app/dao/jobs_dao.py @@ -75,7 +75,9 @@ def dao_get_jobs_by_service_id( stmt = ( select(Job) .where(*query_filter) - .order_by(func.coalesce(Job.processing_started, Job.created_at).desc()) + .order_by( + func.coalesce(Job.processing_started, Job.created_at).desc(), Job.id.desc() + ) .limit(page_size) .offset(offset) ) diff --git a/tests/app/dao/test_jobs_dao.py b/tests/app/dao/test_jobs_dao.py index b499faefa..28da6eb70 100644 --- a/tests/app/dao/test_jobs_dao.py +++ b/tests/app/dao/test_jobs_dao.py @@ -209,12 +209,18 @@ def test_get_jobs_for_service_in_processed_at_then_created_at_order( ), ] + expected_order = sorted( + created_jobs, + key=lambda job: ((job.processing_started or job.created_at), str(job.id)), + reverse=True, + ) + jobs = dao_get_jobs_by_service_id(sample_template.service.id).items - assert len(jobs) == len(created_jobs) + assert len(jobs) == len(expected_order) - for index in range(0, len(created_jobs)): - assert jobs[index].id == created_jobs[index].id + for index in range(len(expected_order)): + assert jobs[index].id == expected_order[index].id def test_update_job(sample_job): diff --git a/tests/app/job/test_rest.py b/tests/app/job/test_rest.py index dbba6d729..3ab4e2e60 100644 --- a/tests/app/job/test_rest.py +++ b/tests/app/job/test_rest.py @@ -1070,16 +1070,30 @@ def test_get_jobs_should_retrieve_from_ft_notification_status_for_old_jobs( service_id=sample_template.service_id, ) - assert resp_json["data"][0]["id"] == str(job_3.id) - assert resp_json["data"][0]["statistics"] == [] - assert resp_json["data"][1]["id"] == str(job_2.id) - assert resp_json["data"][1]["statistics"] == [ - {"status": NotificationStatus.CREATED, "count": 1}, - ] - assert resp_json["data"][2]["id"] == str(job_1.id) - assert resp_json["data"][2]["statistics"] == [ - {"status": NotificationStatus.DELIVERED, "count": 6}, - ] + returned_jobs = resp_json["data"] + + expected_jobs = [job_3, job_2, job_1] + expected_order = sorted( + expected_jobs, + key=lambda job: ((job.processing_started or job.created_at), str(job.id)), + reverse=True, + ) + expected_ids = [str(job.id) for job in expected_order] + returned_ids = [job["id"] for job in returned_jobs if job["id"] in expected_ids] + assert returned_ids == expected_ids + + for job in expected_jobs: + idx = returned_ids.index(str(job.id)) + if job is job_3: + assert returned_jobs[idx]["statistics"] == [] + elif job is job_2: + assert returned_jobs[idx]["statistics"] == [ + {"status": NotificationStatus.CREATED, "count": 1}, + ] + elif job is job_1: + assert returned_jobs[idx]["statistics"] == [ + {"status": NotificationStatus.DELIVERED, "count": 6}, + ] @freeze_time("2017-07-17 07:17")