"""Test for country model.""" from unittest.mock import MagicMock from unittest.mock import patch from sqlalchemy.exc import SQLAlchemyError from prs.constants import http_response_codes from prs.models import country from tests.testutils import db @db.test_schema def test_get_country_name_by_id(): """Test get_country_name_by_id.""" expected_response = {'name': 'USA'} response = country.get_country_name_by_id(1) assert response.status == http_response_codes.SUCCESS_STATUS assert response.message == expected_response @db.test_schema def test_get_country_name_by_id_not_available(): """Test get country name by id not found.""" expected_response = 'country id:2 not found.' response = country.get_country_name_by_id(2) assert response.status == http_response_codes.NOT_FOUND_ERROR assert response.errors['message'] == expected_response @patch('prs.connectors.mysql.ar_database_session') def test_get_country_name_by_id_db_failure( ar_db_session, mocker): """Test fatal db error when performing query for get country name.""" session = MagicMock() session.query = MagicMock(side_effect=SQLAlchemyError()) ar_db_session.return_value = session result = country.get_country_name_by_id(1) assert result.status == 500