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())