36 lines
903 B
Python
36 lines
903 B
Python
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
|