mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-31 23:26:23 -05:00
Test that get_rate gets right rate based on post_class and date
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user