remove letter rates between tests

we only use them in ft_billing so no reason not to delete them. makes
the tests read better as it's obvious how they work too.
This commit is contained in:
Leo Hemsted
2019-04-03 15:34:02 +01:00
parent 9f1f858997
commit 28bff28786
4 changed files with 18 additions and 9 deletions

View File

@@ -326,7 +326,7 @@ def test_get_rate_for_letter_latest(notify_db_session):
letter_rates = [new, old] letter_rates = [new, old]
rate = get_rate([], letter_rates, LETTER_TYPE, date(2018, 1, 1), True, 1) rate = get_rate([], letter_rates, LETTER_TYPE, date(2018, 1, 1), True, 1)
assert rate == Decimal(0.33) assert rate == Decimal('0.33')
def test_get_rate_for_sms_and_email(notify_db_session): def test_get_rate_for_sms_and_email(notify_db_session):

View File

@@ -28,6 +28,7 @@ from tests.app.db import (
create_template, create_template,
create_notification, create_notification,
create_rate, create_rate,
create_letter_rate
) )
@@ -95,7 +96,7 @@ def test_fetch_billing_data_for_today_includes_data_with_the_right_key_type(noti
def test_fetch_billing_data_for_today_includes_data_with_the_right_date(notify_db_session): def test_fetch_billing_data_for_today_includes_data_with_the_right_date(notify_db_session):
process_day = datetime(2018, 4, 1, 13, 30, 00) process_day = datetime(2018, 4, 1, 13, 30, 0)
service = create_service() service = create_service()
template = create_template(service=service, template_type="email") template = create_template(service=service, template_type="email")
create_notification(template=template, status='delivered', created_at=process_day) create_notification(template=template, status='delivered', created_at=process_day)
@@ -282,17 +283,21 @@ def test_get_rates_for_billing(notify_db_session):
create_rate(start_date=datetime.utcnow(), value=12, notification_type='email') create_rate(start_date=datetime.utcnow(), value=12, notification_type='email')
create_rate(start_date=datetime.utcnow(), value=22, notification_type='sms') create_rate(start_date=datetime.utcnow(), value=22, notification_type='sms')
create_rate(start_date=datetime.utcnow(), value=33, notification_type='email') create_rate(start_date=datetime.utcnow(), value=33, notification_type='email')
create_letter_rate(start_date=datetime.utcnow(), rate=0.66, post_class='first')
create_letter_rate(start_date=datetime.utcnow(), rate=0.33, post_class='second')
non_letter_rates, letter_rates = get_rates_for_billing() non_letter_rates, letter_rates = get_rates_for_billing()
assert len(non_letter_rates) == 3 assert len(non_letter_rates) == 3
assert len(letter_rates) == 29 assert len(letter_rates) == 2
@freeze_time('2017-06-01 12:00') @freeze_time('2017-06-01 12:00')
def test_get_rate(notify_db_session): def test_get_rate(notify_db_session):
create_rate(start_date=datetime(2017, 5, 30, 23, 00), value=1.2, notification_type='email') create_rate(start_date=datetime(2017, 5, 30, 23, 0), value=1.2, notification_type='email')
create_rate(start_date=datetime(2017, 5, 30, 23, 00), value=2.2, notification_type='sms') create_rate(start_date=datetime(2017, 5, 30, 23, 0), value=2.2, notification_type='sms')
create_rate(start_date=datetime(2017, 5, 30, 23, 00), value=3.3, notification_type='email') create_rate(start_date=datetime(2017, 5, 30, 23, 0), value=3.3, notification_type='email')
create_letter_rate(start_date=datetime(2017, 5, 30, 23, 0), rate=0.66, post_class='first')
create_letter_rate(start_date=datetime(2017, 5, 30, 23, 0), rate=0.3, post_class='second')
non_letter_rates, letter_rates = get_rates_for_billing() non_letter_rates, letter_rates = get_rates_for_billing()
rate = get_rate(non_letter_rates=non_letter_rates, letter_rates=letter_rates, notification_type='sms', rate = get_rate(non_letter_rates=non_letter_rates, letter_rates=letter_rates, notification_type='sms',
@@ -309,6 +314,9 @@ def test_get_rate(notify_db_session):
@pytest.mark.parametrize("letter_post_class,expected_rate", [("first", "0.61"), ("second", "0.35")]) @pytest.mark.parametrize("letter_post_class,expected_rate", [("first", "0.61"), ("second", "0.35")])
def test_get_rate_filters_letters_by_post_class(notify_db_session, letter_post_class, expected_rate): def test_get_rate_filters_letters_by_post_class(notify_db_session, letter_post_class, expected_rate):
create_letter_rate(start_date=datetime(2017, 5, 30, 23, 0), sheet_count=2, rate=0.61, post_class='first')
create_letter_rate(start_date=datetime(2017, 5, 30, 23, 0), sheet_count=2, rate=0.35, post_class='second')
non_letter_rates, letter_rates = get_rates_for_billing() non_letter_rates, letter_rates = get_rates_for_billing()
rate = get_rate(non_letter_rates, letter_rates, "letter", datetime(2018, 10, 1), True, 2, letter_post_class) rate = get_rate(non_letter_rates, letter_rates, "letter", datetime(2018, 10, 1), True, 2, letter_post_class)
assert rate == Decimal(expected_rate) assert rate == Decimal(expected_rate)
@@ -316,6 +324,9 @@ def test_get_rate_filters_letters_by_post_class(notify_db_session, letter_post_c
@pytest.mark.parametrize("date,expected_rate", [(datetime(2018, 9, 30), '0.33'), (datetime(2018, 10, 1), '0.35')]) @pytest.mark.parametrize("date,expected_rate", [(datetime(2018, 9, 30), '0.33'), (datetime(2018, 10, 1), '0.35')])
def test_get_rate_chooses_right_rate_depending_on_date(notify_db_session, date, expected_rate): def test_get_rate_chooses_right_rate_depending_on_date(notify_db_session, date, expected_rate):
create_letter_rate(start_date=datetime(2016, 1, 1, 0, 0), sheet_count=2, rate=0.33, post_class='second')
create_letter_rate(start_date=datetime(2018, 9, 30, 23, 0), sheet_count=2, rate=0.35, post_class='second')
non_letter_rates, letter_rates = get_rates_for_billing() non_letter_rates, letter_rates = get_rates_for_billing()
rate = get_rate(non_letter_rates, letter_rates, "letter", date, True, 2, "second") rate = get_rate(non_letter_rates, letter_rates, "letter", date, True, 2, "second")
assert rate == Decimal(expected_rate) assert rate == Decimal(expected_rate)

View File

@@ -1,7 +1,6 @@
import random import random
import uuid import uuid
from datetime import datetime, date from datetime import datetime, date
from decimal import Decimal
from app import db from app import db
from app.dao.email_branding_dao import dao_create_email_branding from app.dao.email_branding_dao import dao_create_email_branding
@@ -414,7 +413,7 @@ def create_letter_rate(start_date=None, end_date=None, crown=True, sheet_count=1
end_date=end_date, end_date=end_date,
crown=crown, crown=crown,
sheet_count=sheet_count, sheet_count=sheet_count,
rate=Decimal(rate), rate=rate,
post_class=post_class post_class=post_class
) )
db.session.add(rate) db.session.add(rate)

View File

@@ -105,7 +105,6 @@ def notify_db_session(notify_db):
"service_permission_types", "service_permission_types",
"auth_type", "auth_type",
"invite_status_type", "invite_status_type",
"letter_rates",
"service_callback_type"]: "service_callback_type"]:
notify_db.engine.execute(tbl.delete()) notify_db.engine.execute(tbl.delete())
notify_db.session.commit() notify_db.session.commit()