mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-19 05:53:51 -04:00
Make _attach_current_user a pure function
Mutating dictionaries is gross and doesn’t work as you’d expect. Better to have the function return a new dictionary instead. Means we can be explicit that `created_by` is one of the allowed params when updating a service.
This commit is contained in:
@@ -7,20 +7,19 @@ def test_client_creates_job_data_correctly(mocker, fake_uuid):
|
||||
template_id = fake_uuid
|
||||
original_file_name = 'test.csv'
|
||||
notification_count = 1
|
||||
mocker.patch('app.notify_client.current_user', id='1')
|
||||
|
||||
expected_data = {
|
||||
"id": job_id,
|
||||
"template": template_id,
|
||||
"original_file_name": original_file_name,
|
||||
"notification_count": 1
|
||||
"notification_count": 1,
|
||||
"created_by": '1'
|
||||
}
|
||||
|
||||
expected_url = '/service/{}/job'.format(service_id)
|
||||
|
||||
client = JobApiClient()
|
||||
mock_attach_user = mocker.patch(
|
||||
'app.notify_client.job_api_client._attach_current_user',
|
||||
return_value={'created_by': fake_uuid})
|
||||
mock_post = mocker.patch('app.notify_client.job_api_client.JobApiClient.post')
|
||||
|
||||
client.create_job(job_id, service_id, template_id, original_file_name, notification_count)
|
||||
|
||||
@@ -7,17 +7,16 @@ 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': fake_uuid
|
||||
'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')
|
||||
mock_attach_user = mocker.patch('app.notify_client.service_api_client._attach_current_user',
|
||||
side_effect=lambda x: x.update({'created_by': fake_uuid}))
|
||||
|
||||
client.delete_service_template(service_id, template_id)
|
||||
mock_post.assert_called_once_with(expected_url, data=expected_data)
|
||||
@@ -40,6 +39,7 @@ def test_client_gets_service(mocker, function, 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'
|
||||
|
||||
Reference in New Issue
Block a user