35 lines
1.6 KiB
Python
35 lines
1.6 KiB
Python
from django.contrib.auth.models import User
|
|
from rest_framework import status
|
|
from rest_framework.test import APITestCase
|
|
|
|
from paperless import version
|
|
|
|
|
|
class TestSystemStatusView(APITestCase):
|
|
ENDPOINT = "/api/status/"
|
|
|
|
def test_system_status_insufficient_permissions(self):
|
|
response = self.client.get(self.ENDPOINT)
|
|
self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED)
|
|
|
|
def test_system_status(self):
|
|
user = User.objects.create_superuser(
|
|
username="temp_admin",
|
|
)
|
|
self.client.force_login(user)
|
|
response = self.client.get(self.ENDPOINT)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEqual(response.data["pngx_version"], version.__full_version_str__)
|
|
self.assertIsNotNone(response.data["server_os"])
|
|
self.assertEqual(response.data["install_type"], "bare-metal")
|
|
self.assertIsNotNone(response.data["storage"]["total"])
|
|
self.assertIsNotNone(response.data["storage"]["available"])
|
|
self.assertEqual(response.data["database"]["type"], "sqlite")
|
|
self.assertIsNotNone(response.data["database"]["url"])
|
|
self.assertEqual(response.data["database"]["status"], "OK")
|
|
self.assertIsNone(response.data["database"]["error"])
|
|
self.assertIsNotNone(response.data["database"]["migration_status"])
|
|
self.assertEqual(response.data["tasks"]["redis_url"], "redis://localhost:6379")
|
|
self.assertEqual(response.data["tasks"]["redis_status"], "ERROR")
|
|
self.assertIsNotNone(response.data["tasks"]["redis_error"])
|