"""Test get_report_presets handler.""" from oto import response from owsrequest import access from reporting.logic import presets def test_get_report_presets_success(client, valid_get_headers, mocker): """Test successful retrieval of report presets.""" mocker.patch.object( access, 'verify_grass_headers', return_value=response.Response(), autospec=True, ) mocker.patch.object( presets, 'get_report_presets', return_value=response.Response(message='Presets are cool!'), autospec=True, ) report_presets_response = client.get( '/report/presets', headers=valid_get_headers ) access.verify_grass_headers.assert_called_once_with('vendor', '7123', True) presets.get_report_presets.assert_called_once_with('vendor', 7123) assert report_presets_response.status_code == 200 assert report_presets_response.data.decode() == 'Presets are cool!' def test_get_report_presets_non_grass_failure( client, valid_get_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, 'get_report_presets') invalid_get_headers = valid_get_headers invalid_get_headers.pop('Grass-Account-Type') report_presets_response = client.get( '/report/presets', headers=valid_get_headers ) access.verify_grass_headers.assert_called_once_with(None, '7123', True) presets.get_report_presets.assert_not_called() assert report_presets_response.status_code == 400 def test_get_report_presets_logic_failure(client, valid_get_headers, mocker): """Test failing logic.""" mocker.patch.object( access, 'verify_grass_headers', return_value=response.Response(), autospec=True, ) mocker.patch.object( presets, 'get_report_presets', return_value=response.Response(status=400), autospec=True, ) report_presets_response = client.get( '/report/presets', headers=valid_get_headers ) access.verify_grass_headers.assert_called_once_with('vendor', '7123', True) presets.get_report_presets.assert_called_once_with('vendor', 7123) assert report_presets_response.status_code == 400