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