diff --git a/app/models.py b/app/models.py index 9c1329576..d13278715 100644 --- a/app/models.py +++ b/app/models.py @@ -361,7 +361,8 @@ class Job(db.Model): index=True, unique=False, nullable=True) - job_status = db.Column(db.String(255), db.ForeignKey('job_status.name'), index=True, nullable=True) + job_status = db.Column( + db.String(255), db.ForeignKey('job_status.name'), index=True, nullable=True, default="pending") VERIFY_CODE_TYPES = [EMAIL_TYPE, SMS_TYPE] diff --git a/migrations/versions/0044_jobs_to_notification_hist.py b/migrations/versions/0044_jobs_to_notification_hist.py index dc4df6770..119d3e03b 100644 --- a/migrations/versions/0044_jobs_to_notification_hist.py +++ b/migrations/versions/0044_jobs_to_notification_hist.py @@ -20,59 +20,68 @@ from app.models import Job, Template, NotificationHistory def upgrade(): - session = Session(bind=op.get_bind()) - - go_live = datetime.datetime.strptime('2016-05-18', '%Y-%m-%d') - notifications_history_start_date = datetime.datetime.strptime('2016-06-26 23:21:55', '%Y-%m-%d %H:%M:%S') - jobs = session.query(Job).join(Template).filter(Job.service_id == '95316ff0-e555-462d-a6e7-95d26fbfd091', - Job.created_at >= go_live, - Job.created_at < notifications_history_start_date).all() - - for job in jobs: - for i in range(0, job.notifications_delivered): - notification = NotificationHistory(id=uuid.uuid4(), - job_id=job.id, - service_id=job.service_id, - template_id=job.template.id, - template_version=job.template_version, - key_type='normal', - content_char_count=len(job.template.content), - notification_type=job.template.template_type, - created_at=job.created_at, - sent_at=job.processing_finished, - sent_by='ses' if job.template.template_type == 'email' else 'mmg', - status='delivered') - - session.add(notification) - - for i in range(0, job.notifications_failed): - notification = NotificationHistory(id=uuid.uuid4(), - job_id=job.id, - service_id=job.service_id, - template_id=job.template.id, - template_version=job.template_version, - key_type='normal', - content_char_count=len(job.template.content), - notification_type=job.template.template_type, - created_at=job.created_at, - sent_at=job.processing_finished, - sent_by='ses' if job.template.template_type == 'email' else 'mmg', - status='permanent-failure') - session.add(notification) - session.commit() + # + # REMOVED + # This script has been applied and doesn't need to be re-applied + # note that by referencing the model objects in migration files, any subsequent alteration of the model and thus + # the database causes all previous migration scripts to fail as the model and DB will be inconsistent in this + # past state. + # + # session = Session(bind=op.get_bind()) + # + # go_live = datetime.datetime.strptime('2016-05-18', '%Y-%m-%d') + # notifications_history_start_date = datetime.datetime.strptime('2016-06-26 23:21:55', '%Y-%m-%d %H:%M:%S') + # jobs = session.query(Job).join(Template).filter(Job.service_id == '95316ff0-e555-462d-a6e7-95d26fbfd091', + # Job.created_at >= go_live, + # Job.created_at < notifications_history_start_date).all() + # + # for job in jobs: + # for i in range(0, job.notifications_delivered): + # notification = NotificationHistory(id=uuid.uuid4(), + # job_id=job.id, + # service_id=job.service_id, + # template_id=job.template.id, + # template_version=job.template_version, + # key_type='normal', + # content_char_count=len(job.template.content), + # notification_type=job.template.template_type, + # created_at=job.created_at, + # sent_at=job.processing_finished, + # sent_by='ses' if job.template.template_type == 'email' else 'mmg', + # status='delivered') + # + # session.add(notification) + # + # for i in range(0, job.notifications_failed): + # notification = NotificationHistory(id=uuid.uuid4(), + # job_id=job.id, + # service_id=job.service_id, + # template_id=job.template.id, + # template_version=job.template_version, + # key_type='normal', + # content_char_count=len(job.template.content), + # notification_type=job.template.template_type, + # created_at=job.created_at, + # sent_at=job.processing_finished, + # sent_by='ses' if job.template.template_type == 'email' else 'mmg', + # status='permanent-failure') + # session.add(notification) + # session.commit() + pass def downgrade(): - ### commands auto generated by Alembic - please adjust! ### - session = Session(bind=op.get_bind()) - - go_live = datetime.datetime.strptime('2016-05-18', '%Y-%m-%d') - notifications_history_start_date = datetime.datetime.strptime('2016-06-26 23:21:55', '%Y-%m-%d %H:%M:%S') - - session.query(NotificationHistory).filter( - NotificationHistory.created_at >= go_live, - NotificationHistory.service_id == '95316ff0-e555-462d-a6e7-95d26fbfd091', - NotificationHistory.created_at < notifications_history_start_date).delete() - - session.commit() - ### end Alembic commands ### + # ### commands auto generated by Alembic - please adjust! ### + # session = Session(bind=op.get_bind()) + # + # go_live = datetime.datetime.strptime('2016-05-18', '%Y-%m-%d') + # notifications_history_start_date = datetime.datetime.strptime('2016-06-26 23:21:55', '%Y-%m-%d %H:%M:%S') + # + # session.query(NotificationHistory).filter( + # NotificationHistory.created_at >= go_live, + # NotificationHistory.service_id == '95316ff0-e555-462d-a6e7-95d26fbfd091', + # NotificationHistory.created_at < notifications_history_start_date).delete() + # + # session.commit() + # ### end Alembic commands ### + pass diff --git a/tests/app/job/test_rest.py b/tests/app/job/test_rest.py index ea65bb447..4f9fdfc14 100644 --- a/tests/app/job/test_rest.py +++ b/tests/app/job/test_rest.py @@ -123,10 +123,12 @@ def test_create_job(notify_api, sample_template, mocker, fake_uuid): path = '/service/{}/job'.format(sample_template.service.id) auth_header = create_authorization_header(service_id=sample_template.service.id) headers = [('Content-Type', 'application/json'), auth_header] + response = client.post( path, data=json.dumps(data), headers=headers) + print(json.loads(response.get_data(as_text=True))) assert response.status_code == 201 app.celery.tasks.process_job.apply_async.assert_called_once_with(