mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-02 09:26:08 -05:00
Added order by.
Added more unit tests. Remove comments.
This commit is contained in:
@@ -341,51 +341,123 @@ def test_fetch_stats_for_all_services_by_date_range(notify_db_session):
|
||||
assert not results[4].count
|
||||
|
||||
|
||||
@freeze_time('2018-01-04 14:00')
|
||||
@freeze_time('2018-03-30 14:00')
|
||||
def test_fetch_monthly_template_usage_for_service(sample_service):
|
||||
template_one = create_template(service=sample_service, template_type='sms', template_name='1_one')
|
||||
template_two = create_template(service=sample_service, template_type='email', template_name='2_two')
|
||||
template_three = create_template(service=sample_service, template_type='letter', template_name='3_three')
|
||||
template_one = create_template(service=sample_service, template_type='sms', template_name='a')
|
||||
template_two = create_template(service=sample_service, template_type='email', template_name='b')
|
||||
template_three = create_template(service=sample_service, template_type='letter', template_name='c')
|
||||
|
||||
create_ft_notification_status(bst_date=date(2017, 12, 10),
|
||||
service=sample_service,
|
||||
template=template_two,
|
||||
count=3)
|
||||
create_ft_notification_status(bst_date=date(2017, 12, 10),
|
||||
service=sample_service,
|
||||
template=template_one,
|
||||
count=6)
|
||||
|
||||
create_ft_notification_status(bst_date=date(2018, 1, 1),
|
||||
service=sample_service,
|
||||
template=template_one,
|
||||
count=2)
|
||||
create_ft_notification_status(bst_date=date(2018, 2, 1),
|
||||
service=sample_service,
|
||||
template=template_two,
|
||||
count=4)
|
||||
|
||||
create_ft_notification_status(bst_date=date(2018, 3, 1),
|
||||
service=sample_service,
|
||||
template=template_three,
|
||||
count=5)
|
||||
create_notification(template=template_one)
|
||||
create_notification(template=template_three, created_at=datetime.utcnow() - timedelta(days=1))
|
||||
create_notification(template=template_three, created_at=datetime.utcnow())
|
||||
results = fetch_monthly_template_usage_for_service(
|
||||
datetime(2017, 4, 1), datetime(2018, 3, 31), sample_service.id
|
||||
)
|
||||
|
||||
assert len(results) == 3
|
||||
assert len(results) == 4
|
||||
|
||||
assert results[0].template_id == template_one.id
|
||||
assert results[0].name == template_one.name
|
||||
assert results[0].is_precompiled_letter is False
|
||||
assert results[0].template_type == template_one.template_type
|
||||
assert results[0].month == 1
|
||||
assert results[0].year == 2018
|
||||
assert results[0].count == 3
|
||||
|
||||
assert results[0].month == 12
|
||||
assert results[0].year == 2017
|
||||
assert results[0].count == 6
|
||||
assert results[1].template_id == template_two.id
|
||||
assert results[1].name == template_two.name
|
||||
assert results[1].is_precompiled_letter is False
|
||||
assert results[1].template_type == template_two.template_type
|
||||
assert results[1].month == 12
|
||||
assert results[1].year == 2017
|
||||
assert results[1].count == 3
|
||||
|
||||
assert results[2].template_id == template_one.id
|
||||
assert results[2].name == template_one.name
|
||||
assert results[2].is_precompiled_letter is False
|
||||
assert results[2].template_type == template_one.template_type
|
||||
assert results[2].month == 1
|
||||
assert results[2].year == 2018
|
||||
assert results[2].count == 4
|
||||
|
||||
assert results[3].template_id == template_three.id
|
||||
assert results[3].name == template_three.name
|
||||
assert results[3].is_precompiled_letter is False
|
||||
assert results[3].template_type == template_three.template_type
|
||||
assert results[3].month == 3
|
||||
assert results[3].year == 2018
|
||||
assert results[3].count == 6
|
||||
|
||||
|
||||
@freeze_time('2018-03-30 14:00')
|
||||
def test_fetch_monthly_template_usage_for_service_does_join_to_notifications_if_today_is_not_in_date_range(
|
||||
sample_service
|
||||
):
|
||||
template_one = create_template(service=sample_service, template_type='sms', template_name='a')
|
||||
template_two = create_template(service=sample_service, template_type='email', template_name='b')
|
||||
create_ft_notification_status(bst_date=date(2018, 2, 1),
|
||||
service=template_two.service,
|
||||
template=template_two,
|
||||
count=15)
|
||||
create_ft_notification_status(bst_date=date(2018, 2, 2),
|
||||
service=template_one.service,
|
||||
template=template_one,
|
||||
count=20)
|
||||
create_ft_notification_status(bst_date=date(2018, 3, 1),
|
||||
service=template_one.service,
|
||||
template=template_one,
|
||||
count=3)
|
||||
create_notification(template=template_one, created_at=datetime.utcnow())
|
||||
results = fetch_monthly_template_usage_for_service(
|
||||
datetime(2018, 1, 1), datetime(2018, 2, 20), template_one.service_id
|
||||
)
|
||||
|
||||
assert len(results) == 2
|
||||
|
||||
assert results[0].template_id == template_one.id
|
||||
assert results[0].name == template_one.name
|
||||
assert results[0].is_precompiled_letter == template_one.is_precompiled_letter
|
||||
assert results[0].template_type == template_one.template_type
|
||||
assert results[0].month == 2
|
||||
assert results[0].year == 2018
|
||||
assert results[0].count == 20
|
||||
assert results[1].template_id == template_two.id
|
||||
assert results[1].name == template_two.name
|
||||
assert results[1].is_precompiled_letter == template_two.is_precompiled_letter
|
||||
assert results[1].template_type == template_two.template_type
|
||||
assert results[1].month == 2
|
||||
assert results[1].year == 2018
|
||||
assert results[1].count == 4
|
||||
assert results[1].count == 15
|
||||
|
||||
assert results[2].template_id == template_three.id
|
||||
assert results[2].name == template_three.name
|
||||
assert results[2].is_precompiled_letter is False
|
||||
assert results[2].template_type == template_three.template_type
|
||||
assert results[2].month == 3
|
||||
assert results[2].year == 2018
|
||||
assert results[2].count == 5
|
||||
|
||||
@freeze_time('2018-03-30 14:00')
|
||||
def test_fetch_monthly_template_usage_for_service_does_not_include_cancelled_status(
|
||||
sample_template
|
||||
):
|
||||
create_ft_notification_status(bst_date=date(2018, 3, 1),
|
||||
service=sample_template.service,
|
||||
template=sample_template,
|
||||
notification_status='cancelled',
|
||||
count=15)
|
||||
create_notification(template=sample_template, created_at=datetime.utcnow(), status='cancelled')
|
||||
results = fetch_monthly_template_usage_for_service(
|
||||
datetime(2018, 1, 1), datetime(2018, 3, 31), sample_template.service_id
|
||||
)
|
||||
|
||||
assert len(results) == 0
|
||||
|
||||
Reference in New Issue
Block a user