the beginning of the idiots
This commit is contained in:
		
							
								
								
									
										59
									
								
								qwen/python/merchants_of_hope/tests/conftest.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								qwen/python/merchants_of_hope/tests/conftest.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
"""
 | 
			
		||||
Test configuration and fixtures
 | 
			
		||||
"""
 | 
			
		||||
import pytest
 | 
			
		||||
from fastapi.testclient import TestClient
 | 
			
		||||
from sqlalchemy import create_engine
 | 
			
		||||
from sqlalchemy.orm import sessionmaker
 | 
			
		||||
from sqlalchemy.pool import StaticPool
 | 
			
		||||
 | 
			
		||||
from merchants_of_hope.main import app
 | 
			
		||||
from merchants_of_hope.database import Base, get_db
 | 
			
		||||
from merchants_of_hope.models import User, Tenant
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Create test database
 | 
			
		||||
SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db"
 | 
			
		||||
 | 
			
		||||
engine = create_engine(
 | 
			
		||||
    SQLALCHEMY_DATABASE_URL,
 | 
			
		||||
    connect_args={"check_same_thread": False},
 | 
			
		||||
    poolclass=StaticPool,
 | 
			
		||||
)
 | 
			
		||||
TestingSessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture(scope="module")
 | 
			
		||||
def test_db():
 | 
			
		||||
    """Create test database"""
 | 
			
		||||
    Base.metadata.create_all(bind=engine)
 | 
			
		||||
    yield engine
 | 
			
		||||
    Base.metadata.drop_all(bind=engine)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture(scope="function")
 | 
			
		||||
def db_session(test_db):
 | 
			
		||||
    """Create test database session"""
 | 
			
		||||
    connection = test_db.connect()
 | 
			
		||||
    transaction = connection.begin()
 | 
			
		||||
    session = TestingSessionLocal(bind=connection)
 | 
			
		||||
    
 | 
			
		||||
    yield session
 | 
			
		||||
    
 | 
			
		||||
    session.close()
 | 
			
		||||
    transaction.rollback()
 | 
			
		||||
    connection.close()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture(scope="module")
 | 
			
		||||
def client(db_session):
 | 
			
		||||
    """Create test client"""
 | 
			
		||||
    def override_get_db():
 | 
			
		||||
        try:
 | 
			
		||||
            yield db_session
 | 
			
		||||
        finally:
 | 
			
		||||
            pass
 | 
			
		||||
    
 | 
			
		||||
    app.dependency_overrides[get_db] = override_get_db
 | 
			
		||||
    with TestClient(app) as test_client:
 | 
			
		||||
        yield test_client
 | 
			
		||||
		Reference in New Issue
	
	Block a user