Spaces:
Sleeping
Sleeping
File size: 1,617 Bytes
f0b765c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | """
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()) |