import unittest from unittest.mock import MagicMock, patch import pymysql import server class DatabaseReadyTests(unittest.TestCase): @patch("server.pymysql.connect") def test_returns_true_for_select_one(self, connect): connection = MagicMock() cursor = connection.cursor.return_value cursor.fetchone.return_value = (1,) connect.return_value = connection self.assertTrue(server.database_ready()) cursor.execute.assert_called_once_with("SELECT 1") cursor.close.assert_called_once() connection.close.assert_called_once() @patch("server.pymysql.connect", side_effect=pymysql.MySQLError("unavailable")) def test_returns_false_when_database_is_unavailable(self, connect): self.assertFalse(server.database_ready()) connect.assert_called_once() if __name__ == "__main__": unittest.main()