mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
77 lines
2.5 KiB
Python
77 lines
2.5 KiB
Python
import shutil
|
|
import tempfile
|
|
|
|
from django.conf import settings
|
|
from django.contrib.auth.models import User
|
|
from django.test import TestCase
|
|
from django.test import override_settings
|
|
from rest_framework import status
|
|
|
|
|
|
class TestViews(TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
# Provide a dummy static dir to silence whitenoise warnings
|
|
cls.static_dir = tempfile.mkdtemp()
|
|
|
|
cls.override = override_settings(
|
|
STATIC_ROOT=cls.static_dir,
|
|
)
|
|
cls.override.enable()
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
shutil.rmtree(cls.static_dir, ignore_errors=True)
|
|
cls.override.disable()
|
|
|
|
def setUp(self) -> None:
|
|
self.user = User.objects.create_user("testuser")
|
|
|
|
def test_login_redirect(self):
|
|
response = self.client.get("/")
|
|
self.assertEqual(response.status_code, status.HTTP_302_FOUND)
|
|
self.assertEqual(response.url, "/accounts/login/?next=/")
|
|
|
|
def test_index(self):
|
|
self.client.force_login(self.user)
|
|
for language_given, language_actual in [
|
|
("", "en-US"),
|
|
("en-US", "en-US"),
|
|
("de", "de-DE"),
|
|
("en", "en-US"),
|
|
("en-us", "en-US"),
|
|
("fr", "fr-FR"),
|
|
("jp", "en-US"),
|
|
]:
|
|
if language_given:
|
|
self.client.cookies.load(
|
|
{settings.LANGUAGE_COOKIE_NAME: language_given},
|
|
)
|
|
elif settings.LANGUAGE_COOKIE_NAME in self.client.cookies:
|
|
self.client.cookies.pop(settings.LANGUAGE_COOKIE_NAME)
|
|
|
|
response = self.client.get(
|
|
"/",
|
|
)
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEqual(
|
|
response.context_data["webmanifest"],
|
|
f"frontend/{language_actual}/manifest.webmanifest",
|
|
)
|
|
self.assertEqual(
|
|
response.context_data["styles_css"],
|
|
f"frontend/{language_actual}/styles.css",
|
|
)
|
|
self.assertEqual(
|
|
response.context_data["runtime_js"],
|
|
f"frontend/{language_actual}/runtime.js",
|
|
)
|
|
self.assertEqual(
|
|
response.context_data["polyfills_js"],
|
|
f"frontend/{language_actual}/polyfills.js",
|
|
)
|
|
self.assertEqual(
|
|
response.context_data["main_js"],
|
|
f"frontend/{language_actual}/main.js",
|
|
)
|