chatbot / src /db /mock_database.py
jawadsaghir12's picture
Add application file
a8a2cf5
"""
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']