29 lines
887 B
Python
29 lines
887 B
Python
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() |