Create DAO for daily sorted letter model

This commit is contained in:
Katie Smith
2018-02-19 14:00:33 +00:00
parent b0de3ba4d9
commit 1b5aaed10a
3 changed files with 99 additions and 1 deletions

View File

@@ -0,0 +1,47 @@
from datetime import date
from app.dao.daily_sorted_letter_dao import (
dao_create_or_update_daily_sorted_letter,
dao_get_daily_sorted_letter_by_billing_day,
)
from app.models import DailySortedLetter
from tests.app.db import create_daily_sorted_letter
def test_dao_get_daily_sorted_letter_by_billing_day(notify_db, notify_db_session):
billing_day = date(2018, 2, 1)
other_day = date(2017, 9, 8)
daily_sorted_letters = create_daily_sorted_letter(billing_day=billing_day)
assert dao_get_daily_sorted_letter_by_billing_day(billing_day) == daily_sorted_letters
assert not dao_get_daily_sorted_letter_by_billing_day(other_day)
def test_dao_create_or_update_daily_sorted_letter_creates_a_new_entry(notify_db, notify_db_session):
billing_day = date(2018, 2, 1)
dsl = DailySortedLetter(billing_day=billing_day, unsorted_count=2, sorted_count=0)
dao_create_or_update_daily_sorted_letter(dsl)
daily_sorted_letter = dao_get_daily_sorted_letter_by_billing_day(billing_day)
assert daily_sorted_letter.billing_day == billing_day
assert daily_sorted_letter.unsorted_count == 2
assert daily_sorted_letter.sorted_count == 0
assert not daily_sorted_letter.updated_at
def test_dao_create_or_update_daily_sorted_letter_updates_an_existing_entry(
notify_db,
notify_db_session
):
create_daily_sorted_letter(unsorted_count=2, sorted_count=3)
dsl = DailySortedLetter(billing_day=date(2018, 1, 18), unsorted_count=5, sorted_count=17)
dao_create_or_update_daily_sorted_letter(dsl)
daily_sorted_letter = dao_get_daily_sorted_letter_by_billing_day(dsl.billing_day)
assert daily_sorted_letter.unsorted_count == 7
assert daily_sorted_letter.sorted_count == 20
assert daily_sorted_letter.updated_at

View File

@@ -1,4 +1,4 @@
from datetime import datetime
from datetime import datetime, date
import uuid
from app import db
@@ -9,6 +9,7 @@ from app.dao.service_sms_sender_dao import update_existing_sms_sender_with_inbou
from app.dao.invited_org_user_dao import save_invited_org_user
from app.models import (
ApiKey,
DailySortedLetter,
InboundSms,
InboundNumber,
Job,
@@ -506,3 +507,16 @@ def create_invited_org_user(organisation, invited_by, email_address='invite@exam
)
save_invited_org_user(invited_org_user)
return invited_org_user
def create_daily_sorted_letter(billing_day=date(2018, 1, 18), unsorted_count=0, sorted_count=0):
daily_sorted_letter = DailySortedLetter(
billing_day=billing_day,
unsorted_count=unsorted_count,
sorted_count=sorted_count
)
db.session.add(daily_sorted_letter)
db.session.commit()
return daily_sorted_letter