Coverage for tests/routes/test_log_route.py: 100%
51 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-05-02 02:49 +0000
« prev ^ index » next coverage.py v7.6.12, created at 2025-05-02 02:49 +0000
1import pytest
2from unittest.mock import patch
3import json
6def test_health_check(client):
7 response = client.get('/health')
8 assert response.status_code == 200
9 assert response.json['status'] == 'Success'
12@patch('app.routes.logging.log_event')
13def test_log_event_success(mock_log_event, client):
14 mock_log_event.return_value = None
15 response = client.post('/logs', json={
16 'event': 'User logged in',
17 'metadata': {'userID': 1, 'time_lapse': 1234},
18 'time_lapse': 1234
19 })
20 assert response.status_code == 201
21 assert response.json['status'] == 'Success'
24def test_log_event_missing_fields(client):
25 response = client.post('/logs', json={
26 'metadata': {'userID': 1}
27 })
28 assert response.status_code == 400
29 assert 'Missing required fields' in response.json['message']
32@patch('app.routes.logging.get_all_logs')
33def test_get_all_logs_success(mock_get_all_logs, client):
34 mock_get_all_logs.return_value = [{'event': 'login'}]
35 response = client.get('/logs')
36 assert response.status_code == 200
37 assert response.json['status'] == 'Success'
40@patch('app.routes.logging.get_logs_by_user')
41def test_get_logs_by_user_success(mock_get_logs_by_user, client):
42 mock_get_logs_by_user.return_value = [{'event': 'user_event'}]
43 response = client.get('/logs/123')
44 assert response.status_code == 200
45 assert response.json['status'] == 'Success'
48@patch('app.routes.logging.get_logs_by_class')
49def test_get_logs_by_class_success(mock_get_logs_by_class, client):
50 mock_get_logs_by_class.return_value = [{'event': 'class_event'}]
51 response = client.get('/logs/class/456')
52 assert response.status_code == 200
53 assert response.json['status'] == 'Success'
56@patch('app.routes.logging.log_suggestion')
57def test_log_suggestion_success(mock_log_suggestion, client):
58 mock_log_suggestion.return_value = {'id': 'suggestion_id'}
59 response = client.post('/logs/suggestion', json={
60 'prompt': 'function add(a, b)',
61 'suggestionArray': [{'text': '{ return a+b; }'}],
62 'hasBug': False,
63 'model': 'gemini-2.0-flash-lite',
64 'userSectionId': '123'
65 })
66 assert response.status_code == 201
67 assert response.json['status'] == 'Success'
70def test_log_suggestion_missing_fields(client):
71 response = client.post('/logs/suggestion', json={
72 'prompt': 'function add(a, b)'
73 })
74 assert response.status_code == 400
75 assert 'Missing required fields' in response.json['message']
78@patch('app.routes.logging.get_ai_usage')
79def test_ai_usage_success(mock_get_ai_usage, client):
80 mock_get_ai_usage.return_value = {'usage': 123}
81 response = client.get('/logs/ai')
82 assert response.status_code == 200
83 assert response.json['status'] == 'Success'