Fixed bug where I forgot to update only the right job :-(

This commit is contained in:
Martyn Inglis
2016-03-04 15:54:43 +00:00
parent c44aaf0fdc
commit ae395b490e
2 changed files with 34 additions and 1 deletions

View File

@@ -6,7 +6,9 @@ from sqlalchemy import desc
def dao_create_notification(notification):
if notification.job_id:
db.session.query(Job).update({Job.notifications_sent: Job.notifications_sent + 1})
db.session.query(Job).filter_by(
id=notification.job_id
).update({Job.notifications_sent: Job.notifications_sent + 1})
db.session.add(notification)
db.session.commit()

View File

@@ -7,6 +7,7 @@ from app.dao.notifications_dao import (
get_notification_for_job,
get_notifications_for_job
)
from tests.app.conftest import sample_job
def test_save_notification_and_increment_job(sample_template, sample_job):
@@ -35,6 +36,36 @@ def test_save_notification_and_increment_job(sample_template, sample_job):
assert Job.query.get(sample_job.id).notifications_sent == 1
def test_save_notification_and_increment_correct_job(notify_db, notify_db_session, sample_template):
job_1 = sample_job(notify_db, notify_db_session, sample_template.service)
job_2 = sample_job(notify_db, notify_db_session, sample_template.service)
assert Notification.query.count() == 0
data = {
'to': '+44709123456',
'job_id': job_1.id,
'service': sample_template.service,
'template': sample_template,
'created_at': datetime.utcnow()
}
notification = Notification(**data)
dao_create_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['job_id'] == notification_from_db.job_id
assert data['service'] == notification_from_db.service
assert data['template'] == notification_from_db.template
assert data['created_at'] == notification_from_db.created_at
assert 'sent' == notification_from_db.status
assert Job.query.get(job_1.id).notifications_sent == 1
assert Job.query.get(job_2.id).notifications_sent == 0
def test_save_notification_with_no_job(sample_template):
assert Notification.query.count() == 0