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=22, notification_type='sms') 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') create_letter_rate(start_date=datetime.utcnow(), rate=0.84, post_class='europe') create_letter_rate(start_date=datetime.utcnow(), rate=0.84, post_class='rest-of-world') non_letter_rates, letter_rates = get_rates_for_billing() assert len(non_letter_rates) == 3 assert len(letter_rates) == 4
def test_get_rate(notify_db_session): 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, 0), value=2.2, notification_type='sms') 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() rate = get_rate(non_letter_rates=non_letter_rates, letter_rates=letter_rates, notification_type='sms', date=date(2017, 6, 1)) letter_rate = get_rate(non_letter_rates=non_letter_rates, letter_rates=letter_rates, notification_type='letter', crown=True, letter_page_count=1, date=date(2017, 6, 1)) assert rate == 2.2 assert letter_rate == Decimal('0.3')
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() rate = get_rate(non_letter_rates, letter_rates, "letter", date, True, 2, "second") assert rate == Decimal(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() rate = get_rate(non_letter_rates, letter_rates, "letter", datetime(2018, 10, 1), True, 2, letter_post_class) assert rate == Decimal(expected_rate)
def test_get_rate(notify_db_session): 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, 0), value=2.2, notification_type="sms") 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() rate = get_rate( non_letter_rates=non_letter_rates, letter_rates=letter_rates, notification_type="sms", date=date(2017, 6, 1), ) letter_rate = get_rate( non_letter_rates=non_letter_rates, letter_rates=letter_rates, notification_type="letter", crown=True, letter_page_count=1, date=date(2017, 6, 1), ) assert rate == 2.2 assert letter_rate == Decimal("0.3")
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, notification_type='letter', crown=True, letter_page_count=0, date=datetime.utcnow()) assert letter_rate == 0
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=22, notification_type="sms") 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() assert len(non_letter_rates) == 3 assert len(letter_rates) == 2
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=22, notification_type='sms') create_rate(start_date=datetime.utcnow(), value=33, notification_type='email') non_letter_rates, letter_rates = get_rates_for_billing() assert len(non_letter_rates) == 3 assert len(letter_rates) == 10
def test_get_rate(notify_db_session): create_rate(start_date=datetime.utcnow(), value=1.2, notification_type='email') create_rate(start_date=datetime.utcnow(), value=2.2, notification_type='sms') create_rate(start_date=datetime.utcnow(), value=3.3, notification_type='email') 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', date=datetime.utcnow()) letter_rate = get_rate(non_letter_rates=non_letter_rates, letter_rates=letter_rates, notification_type='letter', crown=True, letter_page_count=1, date=datetime.utcnow()) assert rate == 2.2 assert letter_rate == Decimal('0.3')