seller_central_backend/api/test_logs.py
2026-09-13 09:55:52 +05:30

55 lines
1.9 KiB
Python

import pytest
from django.urls import reverse
from rest_framework import status
from rest_framework.test import APIClient
@pytest.fixture
def api_client():
return APIClient()
@pytest.mark.django_db
def test_dashboard_view(api_client):
response = api_client.get('/dashboard/')
assert response.status_code == status.HTTP_200_OK
assert b"Seller Central" in response.content
assert b"Log Dashboard" in response.content
@pytest.mark.django_db
def test_logs_endpoint_defaults(api_client):
url = reverse('logs-list')
response = api_client.get(url)
assert response.status_code == status.HTTP_200_OK
assert response.data['success'] is True
assert 'logs' in response.data
assert 'level_counts' in response.data
assert 'filters' in response.data
@pytest.mark.django_db
def test_logs_endpoint_level_filter(api_client):
url = reverse('logs-list')
response = api_client.get(f"{url}?file=app.log&level=ERROR")
assert response.status_code == status.HTTP_200_OK
assert response.data['filters']['level'] == 'ERROR'
for entry in response.data['logs']:
assert entry['level'] == 'ERROR'
@pytest.mark.django_db
def test_logs_endpoint_security_path_traversal(api_client):
url = reverse('logs-list')
response = api_client.get(f"{url}?file=../../etc/passwd")
assert response.status_code == status.HTTP_400_BAD_REQUEST
assert 'error' in response.data
@pytest.mark.django_db
def test_logs_stats_endpoint(api_client):
url = reverse('logs-stats')
response = api_client.get(url)
assert response.status_code == status.HTTP_200_OK
assert 'files' in response.data
assert 'summary' in response.data
@pytest.mark.django_db
def test_logs_clear_invalid_file(api_client):
url = reverse('logs-clear')
response = api_client.post(url, {'file': '../../secret.txt'})
assert response.status_code == status.HTTP_400_BAD_REQUEST