Add ai generated tests
This commit is contained in:
64
test/test_services/test_database.py
Normal file
64
test/test_services/test_database.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import pytest
|
||||
from sqlmodel import Session, select
|
||||
from app.services.database import create_db_and_tables, get_session, add_and_refresh
|
||||
from app.model.models import UserDB, GroupDB, Card
|
||||
|
||||
|
||||
def test_create_db_and_tables():
|
||||
"""Test database and tables creation."""
|
||||
# This is primarily an integration test
|
||||
from sqlalchemy import inspect
|
||||
from app.services.database import engine
|
||||
|
||||
create_db_and_tables()
|
||||
inspector = inspect(engine)
|
||||
|
||||
# Check that tables exist
|
||||
tables = inspector.get_table_names()
|
||||
assert "userdb" in tables
|
||||
assert "groupdb" in tables
|
||||
assert "card" in tables
|
||||
assert "accessauthorizationdb" in tables
|
||||
assert "timetable" in tables
|
||||
assert "aagrouplink" in tables
|
||||
|
||||
|
||||
def test_get_session(db_session):
|
||||
"""Test database session generator."""
|
||||
# Test that we can get a session
|
||||
session_gen = get_session()
|
||||
session = next(session_gen)
|
||||
|
||||
assert isinstance(session, Session)
|
||||
|
||||
# Test that session works
|
||||
user = UserDB(name="Test", passwordhash="hash")
|
||||
session.add(user)
|
||||
session.commit()
|
||||
|
||||
retrieved_user = session.get(UserDB, user.id)
|
||||
assert retrieved_user is not None
|
||||
assert retrieved_user.name == "Test"
|
||||
|
||||
# Clean up generator
|
||||
try:
|
||||
next(session_gen)
|
||||
except StopIteration:
|
||||
pass
|
||||
|
||||
|
||||
def test_add_and_refresh(db_session):
|
||||
"""Test add_and_refresh helper function."""
|
||||
user = UserDB(name="Test User", passwordhash="hashed")
|
||||
|
||||
# Add user
|
||||
result = add_and_refresh(db_session, user)
|
||||
|
||||
# Assert that user is now in database with ID
|
||||
assert result.id is not None
|
||||
assert result.name == "Test User"
|
||||
|
||||
# Verify in database
|
||||
db_user = db_session.get(UserDB, result.id)
|
||||
assert db_user is not None
|
||||
assert db_user.name == "Test User"
|
||||
Reference in New Issue
Block a user