diff --git a/app/dao/jobs_dao.py b/app/dao/jobs_dao.py index 7e9408c94..7b6a052ae 100644 --- a/app/dao/jobs_dao.py +++ b/app/dao/jobs_dao.py @@ -1,3 +1,4 @@ +from sqlalchemy import desc from app import db from app.models import Job @@ -7,7 +8,7 @@ def dao_get_job_by_service_id_and_job_id(service_id, job_id): def dao_get_jobs_by_service_id(service_id): - return Job.query.filter_by(service_id=service_id).all() + return Job.query.filter_by(service_id=service_id).order_by(desc(Job.created_at)).all() def dao_get_job_by_id(job_id): diff --git a/tests/app/dao/test_jobs_dao.py b/tests/app/dao/test_jobs_dao.py index 0a80ad398..2c1d64f03 100644 --- a/tests/app/dao/test_jobs_dao.py +++ b/tests/app/dao/test_jobs_dao.py @@ -64,6 +64,23 @@ def test_get_jobs_for_service(notify_db, notify_db_session, sample_template): assert one_job_from_db != other_job_from_db +def test_get_jobs_for_service_in_created_at_order(notify_db, notify_db_session, sample_template): + from tests.app.conftest import sample_job as create_job + + job_1 = create_job(notify_db, notify_db_session, sample_template.service, sample_template) + job_2 = create_job(notify_db, notify_db_session, sample_template.service, sample_template) + job_3 = create_job(notify_db, notify_db_session, sample_template.service, sample_template) + job_4 = create_job(notify_db, notify_db_session, sample_template.service, sample_template) + + jobs = dao_get_jobs_by_service_id(sample_template.service.id) + + assert len(jobs) == 4 + assert jobs[0].id == job_4.id + assert jobs[1].id == job_3.id + assert jobs[2].id == job_2.id + assert jobs[3].id == job_1.id + + def test_update_job(sample_job): assert sample_job.status == 'pending'