Forkei's picture
Upload folder using huggingface_hub
52a4f3c verified
"""
Pytest configuration and fixtures for Chess Master tests.
Sets up shared test environment including database manager.
"""
import pytest
import tempfile
from pathlib import Path
import db.database as db_module
@pytest.fixture(scope="function", autouse=True)
def setup_test_db():
"""
Auto-use fixture to set up a temporary database for each test.
This ensures that the global database manager is initialized for tests
that rely on module-level functions like get_player().
"""
# Create temp database
with tempfile.TemporaryDirectory() as tmpdir:
db_path = Path(tmpdir) / "test_chess_club.db"
db_url = f"sqlite:///{db_path}"
# Create and initialize manager
manager = db_module.DatabaseManager(database_url=db_url)
manager.initialize()
# Store original manager
old_manager = db_module._db_manager
# Set global manager
db_module._db_manager = manager
yield manager
# Restore original manager
db_module._db_manager = old_manager
manager.close()