From 4751673f4357fc3e9bf612499d7fd3a4ef8da2e7 Mon Sep 17 00:00:00 2001 From: Martyn Inglis Date: Fri, 12 May 2017 13:08:09 +0100 Subject: [PATCH] Fixed service test that deletes all the things to delete the job stats too. --- app/dao/services_dao.py | 10 ++++++++-- tests/app/dao/test_statistics_dao.py | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/dao/services_dao.py b/app/dao/services_dao.py index c5679289c..736051174 100644 --- a/app/dao/services_dao.py +++ b/app/dao/services_dao.py @@ -28,7 +28,7 @@ from app.models import ( KEY_TYPE_TEST, NOTIFICATION_STATUS_TYPES, TEMPLATE_TYPES, -) + JobStatistics) from app.service.statistics import format_monthly_template_notification_stats from app.statsd_decorators import statsd from app.utils import get_london_month_from_utc_column, get_london_midnight_in_utc @@ -160,6 +160,10 @@ def delete_service_and_all_associated_db_objects(service): query.delete() db.session.commit() + job_stats = JobStatistics.query.join(Job).filter(Job.service_id == service.id) + list(map(db.session.delete, job_stats)) + db.session.commit() + _delete_commit(NotificationStatistics.query.filter_by(service=service)) _delete_commit(TemplateStatistics.query.filter_by(service=service)) _delete_commit(ProviderStatistics.query.filter_by(service=service)) @@ -167,12 +171,14 @@ def delete_service_and_all_associated_db_objects(service): _delete_commit(Permission.query.filter_by(service=service)) _delete_commit(ApiKey.query.filter_by(service=service)) _delete_commit(ApiKey.get_history_model().query.filter_by(service_id=service.id)) + _delete_commit(Job.query.filter_by(service=service)) _delete_commit(NotificationHistory.query.filter_by(service=service)) _delete_commit(Notification.query.filter_by(service=service)) - _delete_commit(Job.query.filter_by(service=service)) _delete_commit(Template.query.filter_by(service=service)) _delete_commit(TemplateHistory.query.filter_by(service_id=service.id)) + + verify_codes = VerifyCode.query.join(User).filter(User.id.in_([x.id for x in service.users])) list(map(db.session.delete, verify_codes)) db.session.commit() diff --git a/tests/app/dao/test_statistics_dao.py b/tests/app/dao/test_statistics_dao.py index 128c595d3..388a64b6f 100644 --- a/tests/app/dao/test_statistics_dao.py +++ b/tests/app/dao/test_statistics_dao.py @@ -699,6 +699,7 @@ def test_timeout_job_counts_timesout_multiple_jobs( assert stats.sms_failed == sms_count assert stats.emails_failed == email_count + count_notifications = len(NOTIFICATION_STATUS_TYPES) count_success_notifications = len(NOTIFICATION_STATUS_SUCCESS) count_error_notifications = len(NOTIFICATION_STATUS_TYPES) - len(NOTIFICATION_STATUS_SUCCESS)