""" Unit tests for analytics functionality Consolidated from: - test_analytics.py - test_user_analytics.py - Parts of test_chat_analytics.py """ import asyncio import time import time import time import pytest from unittest.mock import AsyncMock, patch from analytics.collectors import create_session, track_message, track_search from analytics.dashboard import get_authenticated_vs_anonymous_metrics, get_basic_stats, get_hourly_message_stats, get_performance_stats, get_session_stats, get_user_analytics, get_user_statistics from tests.utilities import MockDataGenerator, TestHelpers, ValidationHelpers, create_test_user_data, skip_if_no_database start_time = time.time() metrics = await get_authenticated_vs_anonymous_metrics() end_time = time.time() execution_time = end_time - start_time assert isinstance(metrics, dict) assert "authenticated" in metrics assert "anonymous" in metrics assert execution_time < 5.0, f"Comparison metrics too slow: {execution_time:.2f}s" if __name__ == "__main__": # Run tests manually for debugging async def run_basic_tests(): test_basic = TestBasicAnalytics() await test_basic.test_get_basic_stats() await test_basic.test_get_basic_stats_with_user_filter() print("✅ Basic analytics tests passed") test_user = TestUserAnalytics() await test_user.test_get_user_statistics() await test_user.test_get_user_analytics_invalid_user() print("✅ User analytics tests passed") asyncio.run(run_basic_tests())