From eed1d83187e3d379cf8332741196b4c45d0a078a Mon Sep 17 00:00:00 2001 From: Pea Tyczynska Date: Thu, 20 Sep 2018 15:49:15 +0100 Subject: [PATCH] Test that get_rate gets right rate based on post_class and date --- tests/app/celery/test_reporting_tasks.py | 15 --------------- tests/app/dao/test_ft_billing_dao.py | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/tests/app/celery/test_reporting_tasks.py b/tests/app/celery/test_reporting_tasks.py index 096ca73d6..f21de04c2 100644 --- a/tests/app/celery/test_reporting_tasks.py +++ b/tests/app/celery/test_reporting_tasks.py @@ -331,21 +331,6 @@ def test_get_rate_for_letter_latest(notify_db_session): assert rate == Decimal(0.33) -@pytest.mark.parametrize( - "letter_post_class,expected_rate", [("first", 0.42), ("second", 0.33)] -) -def test_get_rate_filters_letters_byl_post_class(notify_db_session, letter_post_class, expected_rate): - non_letter_rates = [(r.notification_type, r.valid_from, r.rate) for r in - Rate.query.order_by(desc(Rate.valid_from)).all()] - - letter_rates = [ - (datetime(2017, 12, 1), True, 1, Decimal(0.42), 'first'), - (datetime(2017, 12, 1), True, 1, Decimal(0.33), 'second') - ] - rate = get_rate(non_letter_rates, letter_rates, LETTER_TYPE, datetime(2018, 1, 1), True, 1, letter_post_class) - assert rate == Decimal(expected_rate) - - def test_get_rate_for_sms_and_email(notify_db, notify_db_session): sms_rate = Rate(valid_from=datetime(2017, 12, 1), rate=Decimal(0.15), diff --git a/tests/app/dao/test_ft_billing_dao.py b/tests/app/dao/test_ft_billing_dao.py index a51feb2ea..c8c5627b4 100644 --- a/tests/app/dao/test_ft_billing_dao.py +++ b/tests/app/dao/test_ft_billing_dao.py @@ -4,6 +4,8 @@ from decimal import Decimal from datetime import datetime, timedelta from freezegun import freeze_time +import pytest + from app import db from app.dao.fact_billing_dao import ( delete_billing_data_for_service_for_day, @@ -248,6 +250,20 @@ def test_get_rate(notify_db_session): assert letter_rate == Decimal('0.3') +@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): + 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) + assert rate == Decimal(expected_rate) + + +@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): + non_letter_rates, letter_rates = get_rates_for_billing() + rate = get_rate(non_letter_rates, letter_rates, "letter", date, True, 2, "second") + assert rate == Decimal(expected_rate) + + def test_get_rate_for_letters_when_page_count_is_zero(notify_db_session): non_letter_rates, letter_rates = get_rates_for_billing() letter_rate = get_rate(non_letter_rates=non_letter_rates, letter_rates=letter_rates,