async def test_add_game(app: FastAPI): async with AsyncClient(app=app, base_url="http://test/") as ac: app.dependency_overrides[require_user_cookie] = require_user_cookie_mock response = await ac.post("/games/", json={ "name": "Sprint planning" }) app.dependency_overrides = {} assert response.status_code == 200
async def test_mocked_broadcast(app: FastAPI, game_fixture, mocker): async with AsyncClient(app=app, base_url="http://test/") as ac: mock_broadcast = AsyncMock(return_value=Future()) mocker.patch('app.routers.game.broadcast.publish', new=mock_broadcast) app.dependency_overrides[require_user_cookie] = require_user_cookie_mock await ac.post(f"/game/{game_fixture.id}/tasks", json={ "content": "Sprint planning", "complexity": ComplexityTypes.ZERO.value, }) task = await Task.get() user = await User.filter(name='Demo').first() mock_broadcast.assert_awaited_once_with( channel=f'game-{game_fixture.id}', message=json.dumps( jsonable_encoder({ 'type': settings.WS_PUBLISHED_TASK, 'content': task.content, 'task_id': task.id, 'game_uuid': game_fixture.id, 'user': user.id, })) ) app.dependency_overrides = {}
from services.users_service import DummyUsersService, UsersService from utils.dep_container import DepContainer def setup_container(c: Container): c[UsersService] = DummyUsersService c[AdminService] = DummyAdminService c[TokenService] = DummyTokenService c[SecretService] = Singleton(DummySecretService) app = FastAPI() @app.get("/") def index(): return { "hello": "world", } app.include_router(token.router) app.include_router(users.router, prefix='/users') app.include_router(admin.router, prefix='/admin') # Inject with Lagom Container # Open http://localhost:8000/users c = Container() app.dependency_overrides = DepContainer(c).to_dependency_overrides() setup_container(c)