"""Tests for server startup configuration.""" import os import unittest from unittest.mock import patch from server import app class ServerStartupTests(unittest.TestCase): @patch("uvicorn.run") @patch("copilot.auth.load_auth") def test_uses_default_address(self, _load_auth, run): with patch.dict(os.environ, {}, clear=True): app() self.assertEqual(run.call_args.kwargs["host"], "127.0.0.1") self.assertEqual(run.call_args.kwargs["port"], 8000) @patch("uvicorn.run") @patch("copilot.auth.load_auth") def test_uses_address_from_environment(self, _load_auth, run): with patch.dict(os.environ, {"HOST": "0.0.0.0", "PORT": "8080"}, clear=True): app() self.assertEqual(run.call_args.kwargs["host"], "0.0.0.0") self.assertEqual(run.call_args.kwargs["port"], 8080) @patch("uvicorn.run") @patch("copilot.auth.load_auth") def test_explicit_address_takes_precedence(self, _load_auth, run): with patch.dict(os.environ, {"HOST": "0.0.0.0", "PORT": "8080"}, clear=True): app(host="localhost", port=0) self.assertEqual(run.call_args.kwargs["host"], "localhost") self.assertEqual(run.call_args.kwargs["port"], 0) if __name__ == "__main__": unittest.main()