add tests for project #1

Merged
gitark merged 8 commits from test into dev1 2025-08-24 09:52:15 +03:00
4 changed files with 22 additions and 2 deletions
Showing only changes of commit 340c3e1077 - Show all commits

View File

@@ -26,6 +26,7 @@ class BaseRepo(Generic[ModelType]):
statement = insert(self.model).values(data).returning(self.model) statement = insert(self.model).values(data).returning(self.model)
result = await self.session.execute(statement) result = await self.session.execute(statement)
obj: ModelType = result.scalar_one() obj: ModelType = result.scalar_one()
print(obj)
return obj return obj
async def get_one_or_none(self, **filter_by: Any) -> ModelType | None: async def get_one_or_none(self, **filter_by: Any) -> ModelType | None:

View File

@@ -1,7 +1,8 @@
import pytest import pytest
from sqlalchemy import NullPool from sqlalchemy import NullPool, insert
from sqlalchemy.ext.asyncio import create_async_engine from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
from src.core.auth_manager import AuthManager
from src.core.database import Base from src.core.database import Base
from src.models import * # noqa: F403 from src.models import * # noqa: F403
@@ -10,6 +11,14 @@ engine_null_pool = create_async_engine('sqlite+aiosqlite:///tests/test_db.db', p
@pytest.fixture(scope="session", autouse=True) @pytest.fixture(scope="session", autouse=True)
async def setup_database(): async def setup_database():
hashed_pass = AuthManager.get_password_hash("admin")
user_admin = {"username": "admin", "hashed_password": hashed_pass, "is_superuser": True}
async with engine_null_pool.begin() as conn: async with engine_null_pool.begin() as conn:
await conn.run_sync(Base.metadata.drop_all) await conn.run_sync(Base.metadata.drop_all)
await conn.run_sync(Base.metadata.create_all) await conn.run_sync(Base.metadata.create_all)
async with async_sessionmaker(engine_null_pool, expire_on_commit=False)() as conn:
result = await conn.execute(insert(UsersORM).values(user_admin).returning(UsersORM)) # noqa: F405
await conn.commit()
admin = result.scalar_one()
assert admin.is_superuser is True

View File

View File

@@ -0,0 +1,10 @@
from src.core.auth_manager import AuthManager
async def test_jwt():
token = AuthManager.create_access_token(data={"id": 1, "sub": "testuser", "is_active": "True"})
assert token
encode_token = AuthManager.decode_access_token(token=token)
assert encode_token['id'] == 1 and encode_token['sub'] == 'testuser'