Merge pull request #67 from alphagov/notfication-job-nullable

job on notification now nullable.
This commit is contained in:
NIcholas Staples
2016-02-10 11:20:53 +00:00
3 changed files with 53 additions and 1 deletions

View File

@@ -200,7 +200,7 @@ class Notification(db.Model):
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
to = db.Column(db.String, nullable=False)
job_id = db.Column(UUID(as_uuid=True), db.ForeignKey('jobs.id'), index=True, unique=False, nullable=False)
job_id = db.Column(UUID(as_uuid=True), db.ForeignKey('jobs.id'), index=True, unique=False)
job = db.relationship('Job', backref=db.backref('notifications', lazy='dynamic'))
service_id = db.Column(UUID(as_uuid=True), db.ForeignKey('services.id'), index=True, unique=False)
service = db.relationship('Service')

View File

@@ -0,0 +1,30 @@
"""empty message
Revision ID: 0014_job_id_nullable
Revises: 0013_add_notifications
Create Date: 2016-02-10 10:57:39.414061
"""
# revision identifiers, used by Alembic.
revision = '0014_job_id_nullable'
down_revision = '0013_add_notifications'
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
def upgrade():
### commands auto generated by Alembic - please adjust! ###
op.alter_column('notifications', 'job_id',
existing_type=postgresql.UUID(),
nullable=True)
### end Alembic commands ###
def downgrade():
### commands auto generated by Alembic - please adjust! ###
op.alter_column('notifications', 'job_id',
existing_type=postgresql.UUID(),
nullable=False)
### end Alembic commands ###

View File

@@ -31,6 +31,28 @@ def test_save_notification(notify_db, notify_db_session, sample_template, sample
assert 'sent' == notification_from_db.status
def test_save_notification_no_job_id(notify_db, notify_db_session, sample_template):
assert Notification.query.count() == 0
to = '+44709123456'
data = {
'to': to,
'service': sample_template.service,
'template': sample_template
}
notification = Notification(**data)
save_notification(notification)
assert Notification.query.count() == 1
notification_from_db = Notification.query.all()[0]
assert notification_from_db.id
assert data['to'] == notification_from_db.to
assert data['service'] == notification_from_db.service
assert data['template'] == notification_from_db.template
assert 'sent' == notification_from_db.status
def test_get_notification_for_job(notify_db, notify_db_session, sample_notification):
notifcation_from_db = get_notification(sample_notification.service.id,
sample_notification.job_id,