diff --git a/python_template_server/routers/base_router.py b/python_template_server/routers/base_router.py index 1004a50..632ff91 100644 --- a/python_template_server/routers/base_router.py +++ b/python_template_server/routers/base_router.py @@ -24,7 +24,7 @@ class BaseRouter(ABC): def __init__(self, prefix: str) -> None: """Initialize the base router.""" - logger.info("Initializing router with prefix: %s", prefix) + logger.info("Initializing router with prefix: %s", prefix or "/") self.router = APIRouter(prefix=prefix) self.hashed_token: str = "" diff --git a/tests/conftest.py b/tests/conftest.py index 75ccb67..564acf4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -194,10 +194,16 @@ def mock_template_server_config( # Server fixtures @pytest.fixture(autouse=True) -def mock_template_server_router() -> TemplateServerRouter: - """Provide a TemplateServerRouter instance for testing.""" +def mock_limiter() -> Limiter: + """Provide a mock Limiter instance for testing.""" mock_limiter = MagicMock(spec=Limiter) mock_limiter.limit.return_value = MagicMock(return_value=MagicMock()) + return mock_limiter + + +@pytest.fixture +def mock_template_server_router(mock_limiter: Limiter) -> TemplateServerRouter: + """Provide a TemplateServerRouter instance for testing.""" TEMPLATE_SERVER_ROUTER.configure( hashed_token="hashed_value", # noqa: S106 limiter=mock_limiter, diff --git a/tests/test_template_server.py b/tests/test_template_server.py index e1823dc..9f6a71c 100644 --- a/tests/test_template_server.py +++ b/tests/test_template_server.py @@ -26,6 +26,7 @@ ResponseCode, TemplateServerConfig, ) +from python_template_server.routers.template_server_router import TemplateServerRouter from python_template_server.template_server import TemplateServer @@ -54,10 +55,16 @@ def mock_template_server( mock_template_server_config: TemplateServerConfig, mock_tmp_config_path: Path, mock_tmp_static_path: Path, + mock_template_server_router: TemplateServerRouter, ) -> Generator[TemplateServer]: """Provide a ExampleServer instance for testing.""" with ( patch("python_template_server.template_server.CertificateHandler", return_value=MagicMock(), autospec=True), + patch( + "python_template_server.template_server.TemplateServerRouter", + return_value=mock_template_server_router, + autospec=True, + ), ): mock_tmp_static_path.mkdir(parents=True, exist_ok=True) (mock_tmp_static_path / "index.html").write_text(MOCK_INDEX_CONTENT) @@ -79,7 +86,9 @@ def mock_client(mock_template_server: TemplateServer) -> TestClient: class TestTemplateServer: """Unit tests for the TemplateServer class.""" - def test_init(self, mock_template_server: TemplateServer) -> None: + def test_init( + self, mock_template_server: TemplateServer, mock_template_server_router: TemplateServerRouter + ) -> None: """Test TemplateServer initialization.""" assert isinstance(mock_template_server.app, FastAPI) assert mock_template_server.app.title == mock_template_server.package_metadata["Name"] @@ -87,6 +96,8 @@ def test_init(self, mock_template_server: TemplateServer) -> None: assert mock_template_server.app.version == mock_template_server.package_metadata["Version"] assert mock_template_server.app.root_path == API_PREFIX assert isinstance(mock_template_server.api_key_header, APIKeyHeader) + for route in mock_template_server_router.router.routes: + assert route in mock_template_server.app.routes def test_init_token_hash_not_set( self, mock_template_server_config: TemplateServerConfig, mock_tmp_config_path: Path, mock_tmp_static_path: Path