"""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_create_blacklist_reason_success( client, monkeypatch, create_blacklist_reason_response, blacklist_reason_data): """POST /blacklist-reason handler success.""" monkeypatch.setattr( blacklist_reasons, 'create_blacklist_reason', value=MagicMock( return_value=response.Response( message=create_blacklist_reason_response, status=201))) result = client.post('/blacklist-reason', json=blacklist_reason_data) assert result.status_code == 201 assert blacklist_reasons.create_blacklist_reason.called def test_create_blacklist_reason_failure( monkeypatch, client, blacklist_reason_data): """POST /blacklist-reason handler failure.""" monkeypatch.setattr( blacklist_reasons, 'create_blacklist_reason', value=MagicMock(return_value=response.create_fatal_response())) result = client.post('/blacklist-reason', json=blacklist_reason_data) assert result.status_code == 500 assert blacklist_reasons.create_blacklist_reason.called def test_create_blacklist_reason_incomplete_grass_header( monkeypatch, client, blacklist_reason_data, grass_headers): """POST /blacklist-reason handler grass access failure.""" monkeypatch.setattr( blacklist_reasons, 'create_blacklist_reason', value=MagicMock(return_value=response.create_fatal_response())) del grass_headers[header.GRASS_ACCOUNT_TYPE] result = client.post( '/blacklist-reason', json=blacklist_reason_data, headers=grass_headers) assert result.status_code == 400