findEthics/Atlas
0
1"""2Unit tests for analytics functionality3 4Consolidated from:5- test_analytics.py6- test_user_analytics.py7- Parts of test_chat_analytics.py8"""9 10import asyncio11import time12import time13import time14 15import pytest16from unittest.mock import AsyncMock, patch17 18from analytics.collectors import create_session, track_message, track_search19from 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_statistics20from tests.utilities import MockDataGenerator, TestHelpers, ValidationHelpers, create_test_user_data, skip_if_no_database21 22 start_time = time.time()23 metrics = await get_authenticated_vs_anonymous_metrics()24 end_time = time.time()25 26 execution_time = end_time - start_time27 28 assert isinstance(metrics, dict)29 assert "authenticated" in metrics30 assert "anonymous" in metrics31 assert execution_time < 5.0, f"Comparison metrics too slow: {execution_time:.2f}s"32 33 34if __name__ == "__main__":35 # Run tests manually for debugging36 async def run_basic_tests():37 test_basic = TestBasicAnalytics()38 await test_basic.test_get_basic_stats()39 await test_basic.test_get_basic_stats_with_user_filter()40 print("✅ Basic analytics tests passed")41 42 test_user = TestUserAnalytics()43 await test_user.test_get_user_statistics()44 await test_user.test_get_user_analytics_invalid_user()45 print("✅ User analytics tests passed")46 47 asyncio.run(run_basic_tests())