Spaces:
Running
Running
| """ | |
| Mock Database Module - Works without real database connection | |
| This allows your app to run and test AI features without needing | |
| a working database connection. | |
| """ | |
| from typing import Optional, Dict, Any | |
| from datetime import datetime | |
| import asyncio | |
| class MockAsyncSession: | |
| """Mock session that simulates database operations.""" | |
| def __init__(self): | |
| # Simulate a simple in-memory "database" | |
| self.users = {} | |
| self.sessions = {} | |
| self.conversations = {} | |
| self.messages = {} | |
| self._user_counter = 1 | |
| self._session_counter = 1 | |
| async def execute(self, query): | |
| """Mock execute method.""" | |
| return MockResult() | |
| async def commit(self): | |
| """Mock commit method.""" | |
| pass | |
| async def rollback(self): | |
| """Mock rollback method.""" | |
| pass | |
| def add(self, obj): | |
| """Mock add method.""" | |
| pass | |
| async def refresh(self, obj): | |
| """Mock refresh method.""" | |
| pass | |
| class MockResult: | |
| """Mock query result.""" | |
| def scalar_one_or_none(self): | |
| """Return None to simulate no existing user.""" | |
| return None | |
| def fetchval(self, *args): | |
| """Mock fetchval.""" | |
| return None | |
| def fetchrow(self, *args): | |
| """Mock fetchrow.""" | |
| return None | |
| class MockEngine: | |
| """Mock database engine.""" | |
| def dispose(self): | |
| """Mock dispose method.""" | |
| pass | |
| # Mock functions that replace the real database functions | |
| async def get_session(): | |
| """Return a mock session.""" | |
| return MockAsyncSession() | |
| async def init_db(): | |
| """Mock database initialization.""" | |
| print("[MOCK] Database initialized (mock mode)") | |
| async def dispose_engine(): | |
| """Mock engine disposal.""" | |
| print("[MOCK] Database disposed (mock mode)") | |
| def get_engine(): | |
| """Return mock engine.""" | |
| return MockEngine() | |
| # Export the mock functions | |
| __all__ = ['get_session', 'init_db', 'dispose_engine', 'get_engine'] | |