mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-13 08:42:21 -05:00
137 lines
5.4 KiB
Python
137 lines
5.4 KiB
Python
|
|
import json
|
||
|
|
from freezegun import freeze_time
|
||
|
|
|
||
|
|
from app import db
|
||
|
|
from app.models import TemplateStatistics
|
||
|
|
|
||
|
|
from tests import create_authorization_header
|
||
|
|
|
||
|
|
|
||
|
|
@freeze_time('2016-04-09')
|
||
|
|
def test_get_template_statistics_for_service_for_last_week(notify_api, sample_template):
|
||
|
|
|
||
|
|
# make 9 stats records from 1st to 9th April
|
||
|
|
for i in range(1, 10):
|
||
|
|
past_date = '2016-04-0{}'.format(i)
|
||
|
|
with freeze_time(past_date):
|
||
|
|
template_stats = TemplateStatistics(template_id=sample_template.id,
|
||
|
|
service_id=sample_template.service_id)
|
||
|
|
db.session.add(template_stats)
|
||
|
|
db.session.commit()
|
||
|
|
|
||
|
|
with notify_api.test_request_context():
|
||
|
|
with notify_api.test_client() as client:
|
||
|
|
|
||
|
|
auth_header = create_authorization_header(
|
||
|
|
path='/service/{}/template-statistics'.format(sample_template.service_id),
|
||
|
|
method='GET'
|
||
|
|
)
|
||
|
|
|
||
|
|
response = client.get(
|
||
|
|
'/service/{}/template-statistics'.format(sample_template.service_id),
|
||
|
|
headers=[('Content-Type', 'application/json'), auth_header],
|
||
|
|
query_string={'limit_days': 7}
|
||
|
|
)
|
||
|
|
|
||
|
|
assert response.status_code == 200
|
||
|
|
json_resp = json.loads(response.get_data(as_text=True))
|
||
|
|
assert len(json_resp['data']) == 7
|
||
|
|
assert json_resp['data'][0]['day'] == '2016-04-09'
|
||
|
|
assert json_resp['data'][6]['day'] == '2016-04-03'
|
||
|
|
|
||
|
|
|
||
|
|
@freeze_time('2016-04-30')
|
||
|
|
def test_get_template_statistics_for_service_for_last_actual_week_with_data(notify_api, sample_template):
|
||
|
|
|
||
|
|
# make 9 stats records from 1st to 9th April
|
||
|
|
for i in range(1, 10):
|
||
|
|
past_date = '2016-04-0{}'.format(i)
|
||
|
|
with freeze_time(past_date):
|
||
|
|
template_stats = TemplateStatistics(template_id=sample_template.id,
|
||
|
|
service_id=sample_template.service_id)
|
||
|
|
db.session.add(template_stats)
|
||
|
|
db.session.commit()
|
||
|
|
|
||
|
|
with notify_api.test_request_context():
|
||
|
|
with notify_api.test_client() as client:
|
||
|
|
|
||
|
|
auth_header = create_authorization_header(
|
||
|
|
path='/service/{}/template-statistics'.format(sample_template.service_id),
|
||
|
|
method='GET'
|
||
|
|
)
|
||
|
|
|
||
|
|
# Date is frozen at 2016-04-30 and no data written since
|
||
|
|
response = client.get(
|
||
|
|
'/service/{}/template-statistics'.format(sample_template.service_id),
|
||
|
|
headers=[('Content-Type', 'application/json'), auth_header],
|
||
|
|
query_string={'limit_days': 7}
|
||
|
|
)
|
||
|
|
|
||
|
|
assert response.status_code == 200
|
||
|
|
json_resp = json.loads(response.get_data(as_text=True))
|
||
|
|
assert len(json_resp['data']) == 7
|
||
|
|
assert json_resp['data'][0]['day'] == '2016-04-09'
|
||
|
|
assert json_resp['data'][6]['day'] == '2016-04-03'
|
||
|
|
|
||
|
|
|
||
|
|
def test_get_all_template_statistics_for_service(notify_api, sample_template):
|
||
|
|
|
||
|
|
# make 9 stats records from 1st to 9th April
|
||
|
|
for i in range(1, 10):
|
||
|
|
past_date = '2016-04-0{}'.format(i)
|
||
|
|
with freeze_time(past_date):
|
||
|
|
template_stats = TemplateStatistics(template_id=sample_template.id,
|
||
|
|
service_id=sample_template.service_id)
|
||
|
|
db.session.add(template_stats)
|
||
|
|
db.session.commit()
|
||
|
|
|
||
|
|
with notify_api.test_request_context():
|
||
|
|
with notify_api.test_client() as client:
|
||
|
|
|
||
|
|
auth_header = create_authorization_header(
|
||
|
|
path='/service/{}/template-statistics'.format(sample_template.service_id),
|
||
|
|
method='GET'
|
||
|
|
)
|
||
|
|
|
||
|
|
response = client.get(
|
||
|
|
'/service/{}/template-statistics'.format(sample_template.service_id),
|
||
|
|
headers=[('Content-Type', 'application/json'), auth_header]
|
||
|
|
)
|
||
|
|
|
||
|
|
assert response.status_code == 200
|
||
|
|
json_resp = json.loads(response.get_data(as_text=True))
|
||
|
|
assert len(json_resp['data']) == 9
|
||
|
|
assert json_resp['data'][0]['day'] == '2016-04-09'
|
||
|
|
assert json_resp['data'][8]['day'] == '2016-04-01'
|
||
|
|
|
||
|
|
|
||
|
|
def test_get_all_template_statistics_with_bad_limit_arg_returns_400(notify_api, sample_template):
|
||
|
|
|
||
|
|
# make 9 stats records from 1st to 9th April
|
||
|
|
for i in range(1, 10):
|
||
|
|
past_date = '2016-04-0{}'.format(i)
|
||
|
|
with freeze_time(past_date):
|
||
|
|
template_stats = TemplateStatistics(template_id=sample_template.id,
|
||
|
|
service_id=sample_template.service_id)
|
||
|
|
db.session.add(template_stats)
|
||
|
|
db.session.commit()
|
||
|
|
|
||
|
|
with notify_api.test_request_context():
|
||
|
|
with notify_api.test_client() as client:
|
||
|
|
|
||
|
|
auth_header = create_authorization_header(
|
||
|
|
path='/service/{}/template-statistics'.format(sample_template.service_id),
|
||
|
|
method='GET'
|
||
|
|
)
|
||
|
|
|
||
|
|
response = client.get(
|
||
|
|
'/service/{}/template-statistics'.format(sample_template.service_id),
|
||
|
|
headers=[('Content-Type', 'application/json'), auth_header],
|
||
|
|
query_string={'limit_days': 'blurk'}
|
||
|
|
)
|
||
|
|
|
||
|
|
assert response.status_code == 400
|
||
|
|
json_resp = json.loads(response.get_data(as_text=True))
|
||
|
|
assert json_resp['result'] == 'error'
|
||
|
|
assert json_resp['message'] == ['Limit days blurk is not an integer']
|