import pytest from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from allmende_payment_system.models import Account, Base, User # Create an in-memory SQLite database @pytest.fixture def in_memory_db(): engine = create_engine("sqlite:///:memory:") Base.metadata.create_all(bind=engine) # Create tables TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) # Provide a session and the engine db = TestingSessionLocal() try: yield db finally: db.close() def test_user_model(in_memory_db): user = User(username="test", display_name="Test User") in_memory_db.add(user) in_memory_db.commit() assert user.id is not None account = Account(name="Test Account") account.users.append(user) in_memory_db.add(account) in_memory_db.commit() assert len(user.accounts) == 1