Use annual_billing tables at backend for getting and updating free_sms_fragment_limit

This commit is contained in:
venusbb
2017-10-31 11:22:57 +00:00
parent e665f35acc
commit 8ea38ba7b6
10 changed files with 161 additions and 17 deletions

View File

@@ -31,6 +31,7 @@ def test_should_add_service_and_redirect_to_tour_when_no_services(
mock_create_service_template,
mock_get_services_with_no_services,
api_user_active,
mock_create_or_update_free_sms_fragment_limit,
):
response = logged_in_client.post(
url_for('main.add_service'),
@@ -83,6 +84,7 @@ def test_should_add_service_and_redirect_to_dashboard_when_existing_service(
api_user_active,
organisation_type,
free_allowance,
mock_create_or_update_free_sms_fragment_limit
):
response = logged_in_client.post(
url_for('main.add_service'),

View File

@@ -502,6 +502,7 @@ def test_usage_page(
logged_in_client,
mock_get_usage,
mock_get_billable_units,
mock_get_free_sms_fragment_limit
):
response = logged_in_client.get(url_for('main.usage', service_id=SERVICE_ONE_ID))
@@ -509,6 +510,7 @@ def test_usage_page(
mock_get_billable_units.assert_called_once_with(SERVICE_ONE_ID, 2011)
mock_get_usage.assert_called_once_with(SERVICE_ONE_ID, 2011)
mock_get_free_sms_fragment_limit.assert_called_with(SERVICE_ONE_ID, 2011)
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
@@ -540,11 +542,14 @@ def test_usage_page(
def test_usage_page_with_year_argument(
logged_in_client,
mock_get_usage,
mock_get_billable_units
mock_get_billable_units,
mock_get_free_sms_fragment_limit,
mock_create_or_update_free_sms_fragment_limit
):
assert logged_in_client.get(url_for('main.usage', service_id=SERVICE_ONE_ID, year=2000)).status_code == 200
mock_get_billable_units.assert_called_once_with(SERVICE_ONE_ID, 2000)
mock_get_usage.assert_called_once_with(SERVICE_ONE_ID, 2000)
mock_get_free_sms_fragment_limit.assert_called_with(SERVICE_ONE_ID, 2000)
def test_usage_page_for_invalid_year(
@@ -558,11 +563,13 @@ def test_future_usage_page(
logged_in_client,
mock_get_future_usage,
mock_get_future_billable_units,
mock_get_free_sms_fragment_limit
):
assert logged_in_client.get(url_for('main.usage', service_id=SERVICE_ONE_ID, year=2014)).status_code == 200
mock_get_future_billable_units.assert_called_once_with(SERVICE_ONE_ID, 2014)
mock_get_future_usage.assert_called_once_with(SERVICE_ONE_ID, 2014)
mock_get_free_sms_fragment_limit.assert_called_with(SERVICE_ONE_ID, 2014)
def _test_dashboard_menu(mocker, app_, usr, service, permissions):
@@ -866,9 +873,10 @@ def test_aggregate_status_types(dict_in, expected_failed, expected_requested):
]
)
def test_get_free_paid_breakdown_for_billable_units(now, expected_number_of_months):
sms_allowance = 250000
with now:
billing_units = get_free_paid_breakdown_for_billable_units(
2016, [
2016, sms_allowance, [
{
'month': 'April', 'international': False, 'rate_multiplier': 1,
'notification_type': 'sms', 'rate': 1.65, 'billing_units': 100000

View File

@@ -88,7 +88,8 @@ def test_should_show_overview(
single_sms_sender,
user,
expected_rows,
mock_get_inbound_number_for_service
mock_get_inbound_number_for_service,
mock_get_free_sms_fragment_limit
):
service_one['permissions'] = ['sms', 'email']
@@ -1592,7 +1593,9 @@ def test_should_set_sms_allowance(
mock_update_service,
given_allowance,
expected_api_argument,
mock_create_or_update_free_sms_fragment_limit
):
response = logged_in_platform_admin_client.post(
url_for(
'main.set_free_sms_allowance',
@@ -1609,6 +1612,10 @@ def test_should_set_sms_allowance(
SERVICE_ONE_ID,
free_sms_fragment_limit=expected_api_argument,
)
mock_create_or_update_free_sms_fragment_limit.assert_called_once_with(
SERVICE_ONE_ID,
expected_api_argument
)
def test_switch_service_enable_letters(

View File

@@ -25,3 +25,54 @@ def test_get_get_service_usage_calls_correct_endpoint(mocker, api_user_active):
client.get_service_usage(service_id, 2017)
mock_get.assert_called_once_with(expected_url, params={'year': 2017})
def test_get_free_sms_fragment_limit_for_current_year_correct_endpoint(mocker, api_user_active):
service_id = uuid.uuid4()
expected_url = '/service/{}/billing/free-sms-fragment-limit/current-year'.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)
mock_get.assert_called_once_with(expected_url)
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}
mock_post = mocker.patch('app.notify_client.billing_api_client.BillingAPIClient.post')
client = BillingAPIClient()
client.create_or_update_free_sms_fragment_limit_for_year(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_for_year(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
)