FIXDOCKER и typehint в тестах

This commit is contained in:
2024-01-30 23:11:40 +03:00
parent f61cb3a2ee
commit ead24d9f28
13 changed files with 130 additions and 77 deletions

View File

@@ -21,7 +21,7 @@ async_session_maker = async_sessionmaker(
)
@pytest.fixture(scope="session")
@pytest.fixture(scope="session", autouse=True)
def event_loop():
try:
loop = asyncio.get_event_loop()
@@ -32,7 +32,7 @@ def event_loop():
@pytest_asyncio.fixture(scope="function", autouse=True)
async def db_init():
async def db_init(event_loop):
async with async_engine.begin() as conn:
await conn.run_sync(Base.metadata.drop_all)
await conn.run_sync(Base.metadata.create_all)
@@ -47,7 +47,7 @@ async def get_test_session() -> AsyncGenerator[AsyncSession, None]:
@pytest.fixture(scope="session")
def app() -> Generator[FastAPI, None, None]:
def app(event_loop) -> Generator[FastAPI, None, None]:
app: FastAPI = create_app()
app.dependency_overrides[get_async_session] = get_test_session
yield app
@@ -63,6 +63,6 @@ async def client(app) -> AsyncGenerator[AsyncClient, None]:
@pytest_asyncio.fixture(scope="function")
async def asession() -> AsyncGenerator[AsyncSession, None]:
async def asession(event_loop) -> AsyncGenerator[AsyncSession, None]:
async with async_session_maker() as session:
yield session

View File

@@ -47,7 +47,11 @@ class TestBaseCrud:
return response.status_code, response.json()
@staticmethod
async def get(ac: AsyncClient, menu: dict, submenu: dict) -> Tuple[int, dict]:
async def get(
ac: AsyncClient,
menu: dict,
submenu: dict,
) -> Tuple[int, dict]:
"""Получение меню по id"""
response: Response = await ac.get(
f"/{menu.get('id')}/submenus/{submenu.get('id')}",
@@ -55,7 +59,11 @@ class TestBaseCrud:
return response.status_code, response.json()
@staticmethod
async def write(ac: AsyncClient, menu: dict, submenu: dict) -> Tuple[int, dict]:
async def write(
ac: AsyncClient,
menu: dict,
submenu: dict,
) -> Tuple[int, dict]:
"""создания меню"""
response: Response = await ac.post(
f"/{menu.get('id')}/submenus/",

View File

@@ -48,7 +48,7 @@ async def test_menu(asession: AsyncSession) -> None:
async def test_submenu(asession: AsyncSession) -> None:
async with asession:
# Создаем меню напрямую
menu: Menu = Menu(title="SomeMenu", description="SomeDescription")
menu = Menu(title="SomeMenu", description="SomeDescription")
asession.add(menu)
await asession.commit()
await asession.refresh(menu)
@@ -69,14 +69,18 @@ async def test_submenu(asession: AsyncSession) -> None:
# Проверяем подменю
req_submenu = await SubMenuCrud.get_submenu_item(
menu_id, submenu.id, asession,
menu_id,
submenu.id,
asession,
)
assert submenu == req_submenu
# Обновляем меню
submenu.title = "UpdatedSubmenu"
req_submenu = await SubMenuCrud.update_submenu_item(
submenu_id, menubaseschema.model_validate(submenu), asession,
submenu_id,
menubaseschema.model_validate(submenu),
asession,
)
assert submenu == req_submenu.scalar_one_or_none()