"""Test for LabelBlacklist model.""" from unittest.mock import MagicMock from unittest.mock import patch from oto import status as http_status import pytest from sqlalchemy.exc import SQLAlchemyError from prs.models import label_blacklist from tests.testutils import db @db.test_schema @pytest.mark.parametrize('description, label_id_list, blacklist_type_id_list', [('Label ids found', [(101,), (102,), (103,)], [2]), ('Label ids not found', [], [16])]) def test_get_bad_label_ids_by_blacklist_type_id( description, label_id_list, blacklist_type_id_list): """Test get_bad_label_ids_by_blacklist_type_id.""" expected_response = {'label_ids': label_id_list} response = label_blacklist.get_bad_label_ids_by_blacklist_type_id( blacklist_type_id_list) assert response.status == http_status.OK assert response.message == expected_response @patch('prs.connectors.mysql.ppb_database_session') def test_get_bad_label_ids_by_blacklist_type_id_db_failure(ppb_db_session): """Test fatal db error when performing query for get label ids.""" session = MagicMock() session.query = MagicMock(side_effect=SQLAlchemyError()) ppb_db_session.return_value = session result = label_blacklist.get_bad_label_ids_by_blacklist_type_id([2, 8, 16]) assert result.status == http_status.INTERNAL_ERROR