import uuid import pytest from app.notify_client.billing_api_client import BillingAPIClient def test_get_free_sms_fragment_limit_for_year_correct_endpoint(mocker, api_user_active): service_id = uuid.uuid4() expected_url = '/service/{}/billing/free-sms-fragment-limit'.format(service_id) client = BillingAPIClient() mock_get = mocker.patch('app.notify_client.billing_api_client.BillingAPIClient.get') client.get_free_sms_fragment_limit_for_year(service_id, year=1999) mock_get.assert_called_once_with(expected_url, params={'financial_year_start': 1999}) def test_post_free_sms_fragment_limit_for_current_year_endpoint(mocker, api_user_active): service_id = uuid.uuid4() sms_limit_data = {'free_sms_fragment_limit': 1111, 'financial_year_start': None} mock_post = mocker.patch('app.notify_client.billing_api_client.BillingAPIClient.post') client = BillingAPIClient() client.create_or_update_free_sms_fragment_limit(service_id=service_id, free_sms_fragment_limit=1111) mock_post.assert_called_once_with( url='/service/{}/billing/free-sms-fragment-limit'.format(service_id), data=sms_limit_data ) def test_post_free_sms_fragment_limit_for_year_endpoint(mocker, api_user_active): service_id = uuid.uuid4() sms_limit_data = {'free_sms_fragment_limit': 1111, 'financial_year_start': 2017} mock_post = mocker.patch('app.notify_client.billing_api_client.BillingAPIClient.post') client = BillingAPIClient() client.create_or_update_free_sms_fragment_limit(service_id=service_id, free_sms_fragment_limit=1111, year=2017) mock_post.assert_called_once_with( url='/service/{}/billing/free-sms-fragment-limit'.format(service_id), data=sms_limit_data ) @pytest.mark.parametrize('func, expected_url', [ (BillingAPIClient.get_data_for_volumes_by_service_report, '/platform-stats/volumes-by-service'), (BillingAPIClient.get_data_for_daily_volumes_report, '/platform-stats/daily-volumes-report'), ( BillingAPIClient.get_data_for_daily_sms_provider_volumes_report, '/platform-stats/daily-sms-provider-volumes-report' ), ]) def test_get_data_for_volume_reports(mocker, api_user_active, func, expected_url): mock_get = mocker.patch('app.notify_client.billing_api_client.BillingAPIClient.get') client = BillingAPIClient() func(client, '2022-03-01', '2022-03-31') mock_get.assert_called_once_with(url=expected_url, params={'start_date': '2022-03-01', 'end_date': '2022-03-31'})