def test_should_get_jobs_seven_days_old(sample_template): """ Jobs older than seven days are deleted, but only two day's worth (two-day window) """ seven_days_ago = datetime.utcnow() - timedelta(days=7) within_seven_days = seven_days_ago + timedelta(seconds=1) eight_days_ago = seven_days_ago - timedelta(days=1) nine_days_ago = eight_days_ago - timedelta(days=2) nine_days_one_second_ago = nine_days_ago - timedelta(seconds=1) create_job(sample_template, created_at=seven_days_ago) create_job(sample_template, created_at=within_seven_days) job_to_delete = create_job(sample_template, created_at=eight_days_ago) create_job(sample_template, created_at=nine_days_ago, archived=True) create_job(sample_template, created_at=nine_days_one_second_ago, archived=True) jobs = dao_get_jobs_older_than_data_retention( notification_types=[sample_template.template_type]) assert len(jobs) == 1 assert jobs[0].id == job_to_delete.id
def _remove_csv_files(job_types): jobs = dao_get_jobs_older_than_data_retention(notification_types=job_types) for job in jobs: s3.remove_job_from_s3(job.service_id, job.id) dao_archive_job(job) current_app.logger.info("Job ID {} has been removed from s3.".format( job.id))
def remove_transformed_dvla_files(): jobs = dao_get_jobs_older_than_data_retention( notification_types=[LETTER_TYPE]) for job in jobs: s3.remove_transformed_dvla_file(job.id) current_app.logger.info( "Transformed dvla file for job {} has been removed from s3.". format(job.id))
def test_should_get_jobs_seven_days_old_by_scheduled_for_date(sample_service): six_days_ago = datetime.utcnow() - timedelta(days=6) eight_days_ago = datetime.utcnow() - timedelta(days=8) letter_template = create_template(sample_service, template_type=LETTER_TYPE) create_job(letter_template, created_at=eight_days_ago) create_job(letter_template, created_at=eight_days_ago, scheduled_for=eight_days_ago) job_to_remain = create_job(letter_template, created_at=eight_days_ago, scheduled_for=six_days_ago) jobs = dao_get_jobs_older_than_data_retention( notification_types=[LETTER_TYPE] ) assert len(jobs) == 2 assert job_to_remain.id not in [job.id for job in jobs]
def test_should_get_jobs_seven_days_old_filters_type(sample_service): eight_days_ago = datetime.utcnow() - timedelta(days=8) letter_template = create_template(sample_service, template_type=LETTER_TYPE) sms_template = create_template(sample_service, template_type=SMS_TYPE) email_template = create_template(sample_service, template_type=EMAIL_TYPE) job_to_remain = create_job(letter_template, created_at=eight_days_ago) create_job(sms_template, created_at=eight_days_ago) create_job(email_template, created_at=eight_days_ago) jobs = dao_get_jobs_older_than_data_retention( notification_types=[EMAIL_TYPE, SMS_TYPE]) assert len(jobs) == 2 assert job_to_remain.id not in [job.id for job in jobs]