mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-08 00:28:26 -04:00
Merge pull request #1309 from alphagov/reinstate-new-rate-api
Reinstate new rate api
This commit is contained in:
@@ -50,6 +50,7 @@ def test_get_started(
|
||||
mock_get_detailed_service,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
mock_template_stats = mocker.patch('app.template_statistics_client.get_template_statistics_for_service',
|
||||
return_value=copy.deepcopy(stub_template_stats))
|
||||
@@ -69,6 +70,7 @@ def test_get_started_is_hidden_once_templates_exist(
|
||||
mock_get_detailed_service,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
mock_template_stats = mocker.patch('app.template_statistics_client.get_template_statistics_for_service',
|
||||
return_value=copy.deepcopy(stub_template_stats))
|
||||
@@ -88,6 +90,7 @@ def test_inbound_messages_not_visible_to_service_without_permissions(
|
||||
mock_get_template_statistics,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
|
||||
service_one['permissions'] = []
|
||||
@@ -115,6 +118,7 @@ def test_inbound_messages_shows_count_of_messages(
|
||||
mock_get_usage,
|
||||
inbound_summary_mock,
|
||||
expected_text,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
|
||||
service_one['permissions'] = ['inbound_sms']
|
||||
@@ -204,6 +208,7 @@ def test_should_show_recent_templates_on_dashboard(
|
||||
mock_get_detailed_service,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
mock_template_stats = mocker.patch('app.template_statistics_client.get_template_statistics_for_service',
|
||||
return_value=copy.deepcopy(stub_template_stats))
|
||||
@@ -270,6 +275,7 @@ def test_should_show_upcoming_jobs_on_dashboard(
|
||||
mock_get_jobs,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
response = logged_in_client.get(url_for('main.service_dashboard', service_id=SERVICE_ONE_ID))
|
||||
|
||||
@@ -301,6 +307,7 @@ def test_should_show_recent_jobs_on_dashboard(
|
||||
mock_get_jobs,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
response = logged_in_client.get(url_for('main.service_dashboard', service_id=SERVICE_ONE_ID))
|
||||
|
||||
@@ -420,6 +427,7 @@ def test_menu_send_messages(
|
||||
mock_get_detailed_service,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
with app_.test_request_context():
|
||||
resp = _test_dashboard_menu(
|
||||
@@ -451,6 +459,7 @@ def test_menu_manage_service(
|
||||
mock_get_detailed_service,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
with app_.test_request_context():
|
||||
resp = _test_dashboard_menu(
|
||||
@@ -481,6 +490,7 @@ def test_menu_manage_api_keys(
|
||||
mock_get_detailed_service,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
with app_.test_request_context():
|
||||
resp = _test_dashboard_menu(
|
||||
@@ -511,6 +521,7 @@ def test_menu_all_services_for_platform_admin_user(
|
||||
mock_get_detailed_service,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
with app_.test_request_context():
|
||||
resp = _test_dashboard_menu(
|
||||
@@ -541,6 +552,7 @@ def test_route_for_service_permissions(
|
||||
mock_get_detailed_service,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
with app_.test_request_context():
|
||||
validate_route_permission(
|
||||
@@ -578,6 +590,7 @@ def test_service_dashboard_updates_gets_dashboard_totals(
|
||||
mock_get_jobs,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
mocker.patch('app.main.views.dashboard.get_dashboard_totals', return_value={
|
||||
'email': {'requested': 123, 'delivered': 0, 'failed': 0},
|
||||
@@ -803,6 +816,7 @@ def test_should_show_all_jobs_with_valid_statuses(
|
||||
mock_get_jobs,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
mock_get_yearly_sms_unit_count_and_cost
|
||||
):
|
||||
logged_in_client.get(url_for('main.service_dashboard', service_id=SERVICE_ONE_ID))
|
||||
|
||||
@@ -819,3 +833,45 @@ def test_should_show_all_jobs_with_valid_statuses(
|
||||
'ready to send',
|
||||
'sent to dvla'
|
||||
})
|
||||
|
||||
|
||||
def test_should_show_remaining_free_tier_count(
|
||||
logged_in_client,
|
||||
mock_get_service_templates,
|
||||
mock_get_template_statistics,
|
||||
mock_get_detailed_service,
|
||||
mock_get_jobs,
|
||||
mock_get_usage,
|
||||
mocker
|
||||
):
|
||||
mocker.patch(
|
||||
'app.service_api_client.get_yearly_sms_unit_count_and_cost',
|
||||
return_value={"billable_sms_units": 100, "total_cost": 200.0}
|
||||
)
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_dashboard', service_id=SERVICE_ONE_ID))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert '249,900' in response.get_data(as_text=True)
|
||||
assert 'free text messages left' in response.get_data(as_text=True)
|
||||
|
||||
|
||||
def test_should_show_cost_if_exceeded_free_tier_count(
|
||||
logged_in_client,
|
||||
mock_get_service_templates,
|
||||
mock_get_template_statistics,
|
||||
mock_get_detailed_service,
|
||||
mock_get_jobs,
|
||||
mock_get_usage,
|
||||
mocker
|
||||
):
|
||||
mocker.patch(
|
||||
'app.service_api_client.get_yearly_sms_unit_count_and_cost',
|
||||
return_value={"billable_sms_units": 300000, "total_cost": 1500.50}
|
||||
)
|
||||
|
||||
response = logged_in_client.get(url_for('main.service_dashboard', service_id=SERVICE_ONE_ID))
|
||||
|
||||
assert response.status_code == 200
|
||||
assert '£1,500.50' in response.get_data(as_text=True)
|
||||
assert 'spent on text messages' in response.get_data(as_text=True)
|
||||
|
||||
@@ -23,6 +23,7 @@ def test_sign_out_user(
|
||||
mock_has_permissions,
|
||||
mock_get_template_statistics,
|
||||
mock_get_detailed_service,
|
||||
mock_get_yearly_sms_unit_count_and_cost,
|
||||
mock_get_usage,
|
||||
mock_get_inbound_sms_summary,
|
||||
):
|
||||
|
||||
@@ -92,6 +92,7 @@ def mock_get_detailed_service(mocker, api_user_active):
|
||||
return {
|
||||
'data': {
|
||||
'id': service_id,
|
||||
'free_sms_fragment_limit': 250000,
|
||||
'statistics': {
|
||||
'email': {'requested': 0, 'delivered': 0, 'failed': 0},
|
||||
'sms': {'requested': 0, 'delivered': 0, 'failed': 0}
|
||||
@@ -109,6 +110,7 @@ def mock_get_detailed_service_for_today(mocker, api_user_active):
|
||||
return {
|
||||
'data': {
|
||||
'id': service_id,
|
||||
'free_sms_fragment_limit': 250000,
|
||||
'statistics': {
|
||||
'email': {'requested': 0, 'delivered': 0, 'failed': 0},
|
||||
'sms': {'requested': 0, 'delivered': 0, 'failed': 0}
|
||||
@@ -1398,6 +1400,15 @@ def mock_get_usage(mocker, service_one, fake_uuid):
|
||||
'app.service_api_client.get_service_usage', side_effect=_get_usage)
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_yearly_sms_unit_count_and_cost(mocker, service_one, fake_uuid):
|
||||
def _get_usage(service_id, year=None):
|
||||
return {"billable_sms_units": 100, "total_cost": 200.0}
|
||||
|
||||
return mocker.patch(
|
||||
'app.service_api_client.get_yearly_sms_unit_count_and_cost', side_effect=_get_usage)
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_billable_units(mocker):
|
||||
def _get_usage(service_id, year):
|
||||
|
||||
Reference in New Issue
Block a user