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')
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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")
Exemple #6
0
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
Exemple #7
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')