"""Tests for blacklist word post.""" from unittest.mock import MagicMock from owsresponse import response from blacklist_manager.constants import header from blacklist_manager.logic import blacklist_words def test_create_blacklist_word_success( client, monkeypatch, blacklist_word_response, blacklist_word_data): """POST /blacklist-word handler success.""" monkeypatch.setattr( blacklist_words, 'create_blacklist_word', value=MagicMock( return_value=response.Response( message=blacklist_word_response, status=201))) result = client.post('/blacklist-word', json=blacklist_word_data) assert result.status_code == 201 assert blacklist_words.create_blacklist_word.called def test_create_blacklist_word_failure( monkeypatch, client, blacklist_word_data): """POST /blacklist-word handler failure.""" monkeypatch.setattr( blacklist_words, 'create_blacklist_word', value=MagicMock(return_value=response.create_fatal_response())) result = client.post('/blacklist-word', json=blacklist_word_data) assert result.status_code == 500 assert blacklist_words.create_blacklist_word.called def test_create_blacklist_word_incomplete_grass_header( monkeypatch, client, blacklist_word_data, grass_headers): """POST /blacklist-word handler grass access failure.""" monkeypatch.setattr( blacklist_words, 'create_blacklist_word', value=MagicMock(return_value=response.create_fatal_response())) del grass_headers[header.GRASS_ACCOUNT_TYPE] result = client.post( '/blacklist-word', json=blacklist_word_data, headers=grass_headers) assert result.status_code == 400