24 lines
651 B
Python
24 lines
651 B
Python
from __future__ import annotations
|
|
|
|
import os
|
|
import signal
|
|
import unittest
|
|
from unittest.mock import AsyncMock, patch
|
|
|
|
from app.commands.builtins import restart
|
|
|
|
|
|
class RestartCommandTests(unittest.IsolatedAsyncioTestCase):
|
|
async def test_restart_confirms_then_stops_current_process(self) -> None:
|
|
ctx = type("Context", (), {"reply": AsyncMock()})()
|
|
|
|
with patch("app.commands.builtins.os.kill") as kill:
|
|
await restart(ctx)
|
|
|
|
ctx.reply.assert_awaited_once_with("Stopping bot process for restart")
|
|
kill.assert_called_once_with(os.getpid(), signal.SIGTERM)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|