From 4e60265c5874a1dfbe72e4dbe59a06518e94c28e Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Fri, 27 Jan 2017 11:47:40 +0000 Subject: [PATCH] Add tests for billable unit rest endpoint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Doesn’t do extensive tests through the DAO layer, we have separate tests elsewhere for that. This just tests the query parameter validation. --- tests/app/service/test_rest.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/app/service/test_rest.py b/tests/app/service/test_rest.py index 805f27f3f..cc4c5e38c 100644 --- a/tests/app/service/test_rest.py +++ b/tests/app/service/test_rest.py @@ -1393,3 +1393,23 @@ def test_get_notification_billable_unit_count_missing_year(client, sample_servic assert json.loads(response.get_data(as_text=True)) == { 'message': 'No valid year provided', 'result': 'error' } + + +@pytest.mark.parametrize('query_string, expected_status, expected_json', [ + ('', 200, {'data': {'email_count': 0, 'sms_count': 0}}), + ('?year=2000', 200, {'data': {'email_count': 0, 'sms_count': 0}}), + ('?year=abcd', 400, {'message': 'Year must be a number', 'result': 'error'}), +]) +def test_get_service_provider_aggregate_statistics( + client, + sample_service, + query_string, + expected_status, + expected_json, +): + response = client.get( + '/service/{}/fragment/aggregate_statistics{}'.format(sample_service.id, query_string), + headers=[create_authorization_header(service_id=sample_service.id)] + ) + assert response.status_code == expected_status + assert json.loads(response.get_data(as_text=True)) == expected_json