"""Tests for blacklist reason post.""" from unittest.mock import MagicMock from owsresponse import response from blacklist_manager.constants import header from blacklist_manager.logic import blacklist_reasons def test_update_blacklist_reason_success( client, monkeypatch, blacklist_reason_response, blacklist_reason_data): """UPDATE /blacklist-reason/ handler success.""" monkeypatch.setattr( blacklist_reasons, 'update_blacklist_reason', value=MagicMock( return_value=response.Response( message=blacklist_reason_response))) result = client.put('/blacklist-reason/1', json=blacklist_reason_data) assert result.status_code == 200 assert blacklist_reasons.update_blacklist_reason.called def test_update_blacklist_reason_failure( monkeypatch, client, blacklist_reason_data): """UPDATE /blacklist-reason/ handler failure.""" monkeypatch.setattr( blacklist_reasons, 'update_blacklist_reason', value=MagicMock(return_value=response.create_fatal_response())) result = client.put('/blacklist-reason/1', json=blacklist_reason_data) assert result.status_code == 500 assert blacklist_reasons.update_blacklist_reason.called def test_update_blacklist_reason_incomplete_grass_header( monkeypatch, client, blacklist_reason_data, grass_headers): """UPDATE grass access failure.""" monkeypatch.setattr( blacklist_reasons, 'update_blacklist_reason', value=MagicMock(return_value=response.create_fatal_response())) del grass_headers[header.GRASS_ACCOUNT_TYPE] result = client.put('/blacklist-reason/1', json=blacklist_reason_data, headers=grass_headers) assert result.status_code == 400 def test_update_blacklist_reason_by_id_not_found_error( monkeypatch, client, valid_oa_headers): """Test UPDATE /blacklist-reason/{blacklist_reason_id} handler failure.""" monkeypatch.setattr( blacklist_reasons, 'update_blacklist_reason', value=MagicMock(return_value=response.create_not_found_response( message='Blacklist Id not found.'))) result = client.put('/blacklist-reason/2', headers=valid_oa_headers, json={}) assert result.status_code == 404 assert blacklist_reasons.update_blacklist_reason.called