All checks were successful
Deploy Beta (NATIVE) / deploy (push) Successful in 31s
55 lines
1.9 KiB
Python
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
|