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 assert isinstance(db_session, Session) # Test that session works user = UserDB(name="Test_User", passwordhash="hash") db_session.add(user) db_session.commit() retrieved_user = db_session.get(UserDB, user.id) assert retrieved_user is not None assert retrieved_user.name == "Test_User" 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"