"""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_update_blacklist_word_success( client, monkeypatch, blacklist_word_response, blacklist_word_data): """UPDATE /blacklist-word/ handler success.""" monkeypatch.setattr( blacklist_words, 'update_blacklist_word', value=MagicMock( return_value=response.Response( message=blacklist_word_response))) result = client.put('/blacklist-word/1', json=blacklist_word_data) assert result.status_code == 200 assert blacklist_words.update_blacklist_word.called def test_update_blacklist_word_failure( monkeypatch, client, blacklist_word_data): """UPDATE /blacklist-word/ handler failure.""" monkeypatch.setattr( blacklist_words, 'update_blacklist_word', value=MagicMock(return_value=response.create_fatal_response())) result = client.put('/blacklist-word/1', json=blacklist_word_data) assert result.status_code == 500 assert blacklist_words.update_blacklist_word.called def test_update_blacklist_word_incomplete_grass_header( monkeypatch, client, blacklist_word_data, grass_headers): """UPDATE grass access failure.""" monkeypatch.setattr( blacklist_words, 'update_blacklist_word', value=MagicMock(return_value=response.create_fatal_response())) del grass_headers[header.GRASS_ACCOUNT_TYPE] result = client.put('/blacklist-word/1', json=blacklist_word_data, headers=grass_headers) assert result.status_code == 400 def test_update_blacklist_word_by_id_not_found_error( monkeypatch, client, valid_oa_headers): """Test UPDATE /blacklist-word/{blacklist_id} handler failure state.""" monkeypatch.setattr( blacklist_words, 'update_blacklist_word', value=MagicMock(return_value=response.create_not_found_response( message='Blacklist Id not found.'))) result = client.put('/blacklist-word/2', headers=valid_oa_headers, json={}) assert result.status_code == 404 assert blacklist_words.update_blacklist_word.called