From df0504dddaf65568b92065c6c2e605279d65f387 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Mon, 10 Oct 2016 12:45:48 +0100 Subject: [PATCH] Refactor job order test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - uses 4 rather than 8 entries to test the sort (2 notifications × 2 columns on which we’re sorting) - makes sure we test for when a scheduled job was created before a job that’s been processed already - removes any relative datetimes so the tests are independant of database speed --- tests/app/dao/test_jobs_dao.py | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/tests/app/dao/test_jobs_dao.py b/tests/app/dao/test_jobs_dao.py index f823acb3c..e9b4a2376 100644 --- a/tests/app/dao/test_jobs_dao.py +++ b/tests/app/dao/test_jobs_dao.py @@ -194,25 +194,31 @@ def test_get_jobs_for_service_with_limit_days_edge_case(notify_db, notify_db_ses def test_get_jobs_for_service_in_processed_at_then_created_at_order(notify_db, notify_db_session, sample_template): - _create_job = partial(create_job, notify_db, notify_db_session, sample_template.service, sample_template) - scheduled_jobs, processed_jobs = [], [] - for index in range(0, 4): - scheduled_jobs.append(_create_job( - created_at=datetime.utcnow() - timedelta(seconds=index) - )) - processed_jobs.append(_create_job( - created_at=datetime.utcnow() - timedelta(minutes=(4 - index)), - processing_started=datetime.utcnow() - timedelta(hours=index) - )) + _create_job = partial(create_job, notify_db, notify_db_session, sample_template.service, sample_template) + + def _time_from_hour(hour): + return datetime(2001, 1, 1, hour) if hour is not None else None + + created_jobs = [ + _create_job( + created_at=_time_from_hour(created_at_hour), + processing_started=_time_from_hour(processing_started_hour), + ) + for created_at_hour, processing_started_hour in [ + (2, None), + (1, None), + (1, 4), + (4, 3), + ] + ] jobs = dao_get_jobs_by_service_id(sample_template.service.id).items - assert len(jobs) == 8 + assert len(jobs) == len(created_jobs) - for index in range(0, 4): - assert jobs[index].id == scheduled_jobs[index].id - assert jobs[index + 4].id == processed_jobs[index].id + for index in range(0, len(created_jobs)): + assert jobs[index].id == created_jobs[index].id def test_update_job(sample_job):