Files
docutranslate/tests/test_service_startup.py
T

29 lines
989 B
Python

import os
import unittest
from unittest.mock import patch
from docutranslate import app
class ServiceStartupTest(unittest.TestCase):
@patch.dict(os.environ, {"DOCUTRANSLATE_STRICT_PORT": "1"}, clear=False)
@patch.object(app, "find_free_port", return_value=8011)
def test_strict_port_rejects_occupied_configured_port(self, _find_free_port):
with self.assertRaisesRegex(RuntimeError, "端口 8010 已被占用"):
app.run_app(host="127.0.0.1", port=8010)
@patch.dict(os.environ, {"DOCUTRANSLATE_STRICT_PORT": ""}, clear=False)
@patch.object(app.uvicorn, "run")
@patch.object(app, "find_free_port", return_value=8011)
def test_interactive_mode_can_still_fall_back_to_free_port(
self, _find_free_port, uvicorn_run
):
app.run_app(host="127.0.0.1", port=8010)
uvicorn_run.assert_called_once_with(
app.app, host="127.0.0.1", port=8011, workers=1
)
if __name__ == "__main__":
unittest.main()