"""Test get_report_presets handler.""" import json from oto import response from owsrequest import access from reporting.logic import presets def test_create_report_preset_success(client, valid_post_headers, mocker): """Test successful creation of report presets.""" mocker.patch.object( access, 'verify_grass_headers', return_value=response.Response(), autospec=True, ) mocker.patch.object( presets, 'create_report_preset', return_value=response.Response(message='Presets are creatable!'), autospec=True, ) json_dict = dict(name='name', report_id='id', params='{}') report_presets_response = client.post( '/report/preset', headers=valid_post_headers, data=json.dumps(json_dict), ) access.verify_grass_headers.assert_called_once_with('vendor', '7123', True) presets.create_report_preset.assert_called_once_with( json_dict, 'vendor', '7123', '1' ) assert report_presets_response.status_code == 200 assert report_presets_response.data.decode() == 'Presets are creatable!' def test_create_report_presets_non_grass_failure( client, valid_post_headers, mocker ): """Test failure when non grass.""" mocker.patch.object( access, 'verify_grass_headers', return_value=response.Response(status=400), autospec=True, ) mocker.patch.object(presets, 'create_report_preset') invalid_post_headers = valid_post_headers invalid_post_headers.pop('Grass-Account-Type') report_presets_response = client.post( '/report/preset', headers=invalid_post_headers, data=json.dumps(dict(name='name', report_id='id', params='{}')), ) access.verify_grass_headers.assert_called_once_with(None, '7123', True) presets.create_report_preset.assert_not_called() assert report_presets_response.status_code == 400 def test_create_report_presets_logic_failure( client, valid_post_headers, mocker ): """Test failing logic.""" mocker.patch.object( access, 'verify_grass_headers', return_value=response.Response(), autospec=True, ) mocker.patch.object( presets, 'create_report_preset', return_value=response.Response(status=400), autospec=True, ) json_dict = dict(name='name', report_id='id', params='{}') report_presets_response = client.post( '/report/preset', headers=valid_post_headers, data=json.dumps(json_dict), ) access.verify_grass_headers.assert_called_once_with('vendor', '7123', True) presets.create_report_preset.assert_called_once_with( json_dict, 'vendor', '7123', '1' ) assert report_presets_response.status_code == 400