Test that get_rate gets right rate based on post_class and date

This commit is contained in:
Pea Tyczynska
2018-09-20 15:49:15 +01:00
parent 86533c2366
commit eed1d83187
2 changed files with 16 additions and 15 deletions

View File

@@ -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),

View File

@@ -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,