Files
notifications-admin/tests/app/notify_client/test_service_api_client.py
Chris Hill-Scott c516760056 Set free SMS limit depending on organisation type
Different parts of government get billed slightly differently, and
there’s differences in how much money we’re allowed to give them.

Think these numbers are right, but should be double checked.
2017-10-23 17:45:26 +01:00

83 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import pytest
from app.notify_client.service_api_client import ServiceAPIClient
from tests.conftest import fake_uuid
def test_client_posts_archived_true_when_deleting_template(mocker):
service_id = fake_uuid
template_id = fake_uuid
mocker.patch('app.notify_client.current_user', id='1')
expected_data = {
'archived': True,
'created_by': '1'
}
expected_url = '/service/{}/template/{}'.format(service_id, template_id)
client = ServiceAPIClient()
mock_post = mocker.patch('app.notify_client.service_api_client.ServiceAPIClient.post')
client.delete_service_template(service_id, template_id)
mock_post.assert_called_once_with(expected_url, data=expected_data)
@pytest.mark.parametrize(
'function,params', [
(ServiceAPIClient.get_service, {}),
(ServiceAPIClient.get_detailed_service, {'detailed': True}),
(ServiceAPIClient.get_detailed_service_for_today, {'detailed': True, 'today_only': True})
],
ids=lambda x: x.__name__
)
def test_client_gets_service(mocker, function, params):
client = ServiceAPIClient()
mock_get = mocker.patch.object(client, 'get')
function(client, 'foo')
mock_get.assert_called_once_with('/service/foo', params=params)
def test_client_only_updates_allowed_attributes(mocker):
mocker.patch('app.notify_client.current_user', id='1')
with pytest.raises(TypeError) as error:
ServiceAPIClient().update_service('service_id', foo='bar')
assert str(error.value) == 'Not allowed to update service attributes: foo'
def test_client_creates_service_with_correct_data(
mocker,
active_user_with_permissions,
fake_uuid,
):
client = ServiceAPIClient()
mock_post = mocker.patch.object(client, 'post')
mocker.patch('app.notify_client.current_user', id='123')
client.create_service(
service_name='My first service',
organisation_type='central_government',
free_sms_fragment_limit=2,
message_limit=1,
restricted=True,
user_id=fake_uuid,
email_from='test@example.com',
)
mock_post.assert_called_once_with(
'/service',
dict(
# Autogenerated arguments
created_by='123',
active=True,
# service_name argument is coerced to name
name='My first service',
# The rest pass through with the same names
organisation_type='central_government',
free_sms_fragment_limit=2,
message_limit=1,
restricted=True,
user_id=fake_uuid,
email_from='test@example.com',
),
)