Skip to content

Commit d872393

Browse files
authored
Merge pull request #372 from tisnik/proper-fast-api-mock-for-unit-test
Proper FastAPI mock for unit tests
2 parents d1f42c3 + 80f5a15 commit d872393

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

tests/unit/app/test_routers.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
from typing import Any, Optional
44

5+
from fastapi import FastAPI
6+
57
from app.routers import include_routers # noqa:E402
68

79
from app.endpoints import (
@@ -19,14 +21,27 @@
1921
) # noqa:E402
2022

2123

22-
class MockFastAPI:
24+
class MockFastAPI(FastAPI):
2325
"""Mock class for FastAPI."""
2426

25-
def __init__(self) -> None:
27+
def __init__(self) -> None: # pylint: disable=super-init-not-called
2628
"""Initialize mock class."""
2729
self.routers: list[tuple[Any, Optional[str]]] = []
2830

29-
def include_router(self, router: Any, prefix: Optional[str] = None) -> None:
31+
def include_router( # pylint: disable=too-many-arguments
32+
self,
33+
router: Any,
34+
*,
35+
prefix: str = "",
36+
tags=None,
37+
dependencies=None,
38+
responses=None,
39+
deprecated=None,
40+
include_in_schema=None,
41+
default_response_class=None,
42+
callbacks=None,
43+
generate_unique_id_function=None,
44+
) -> None:
3045
"""Register new router."""
3146
self.routers.append((router, prefix))
3247

@@ -66,14 +81,14 @@ def test_check_prefixes() -> None:
6681

6782
# are all routers added?
6883
assert len(app.routers) == 11
69-
assert app.get_router_prefix(root.router) is None
84+
assert app.get_router_prefix(root.router) == ""
7085
assert app.get_router_prefix(info.router) == "/v1"
7186
assert app.get_router_prefix(models.router) == "/v1"
7287
assert app.get_router_prefix(query.router) == "/v1"
7388
assert app.get_router_prefix(streaming_query.router) == "/v1"
7489
assert app.get_router_prefix(config.router) == "/v1"
7590
assert app.get_router_prefix(feedback.router) == "/v1"
76-
assert app.get_router_prefix(health.router) is None
77-
assert app.get_router_prefix(authorized.router) is None
91+
assert app.get_router_prefix(health.router) == ""
92+
assert app.get_router_prefix(authorized.router) == ""
7893
assert app.get_router_prefix(conversations.router) == "/v1"
79-
assert app.get_router_prefix(metrics.router) is None
94+
assert app.get_router_prefix(metrics.router) == ""

0 commit comments

Comments
 (0)