Files
notifications-admin/tests/app/notify_client/test_billing_client.py
Leo Hemsted ebc005005b refactor: DRY up billing api client test
at the same time add the new daily_sms_provider_volumes_report func to
the tests.
2022-04-11 14:40:32 +01:00

63 lines
2.6 KiB
Python

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'})