Spaces:
Sleeping
Sleeping
| """ | |
| 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 | |
| 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() | |