Feature: app branding (#5357)

This commit is contained in:
shamoon
2024-01-13 11:57:25 -08:00
committed by GitHub
parent 2da5e46386
commit 2a6e79acc8
34 changed files with 675 additions and 118 deletions

View File

@@ -1,4 +1,5 @@
import json
import os
from django.contrib.auth.models import User
from rest_framework import status
@@ -49,10 +50,34 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
"rotate_pages_threshold": None,
"max_image_pixels": None,
"color_conversion_strategy": None,
"app_title": None,
"app_logo": None,
},
),
)
def test_api_get_ui_settings_with_config(self):
"""
GIVEN:
- Existing config with app_title, app_logo specified
WHEN:
- API to retrieve uisettings is called
THEN:
- app_title and app_logo are included
"""
config = ApplicationConfiguration.objects.first()
config.app_title = "Fancy New Title"
config.app_logo = "/logo/example.jpg"
config.save()
response = self.client.get("/api/ui_settings/", format="json")
self.assertDictContainsSubset(
{
"app_title": config.app_title,
"app_logo": config.app_logo,
},
response.data["settings"],
)
def test_api_update_config(self):
"""
GIVEN:
@@ -100,3 +125,37 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
config = ApplicationConfiguration.objects.first()
self.assertEqual(config.user_args, None)
self.assertEqual(config.language, None)
def test_api_replace_app_logo(self):
"""
GIVEN:
- Existing config with app_logo specified
WHEN:
- API to replace app_logo is called
THEN:
- old app_logo file is deleted
"""
with open(
os.path.join(os.path.dirname(__file__), "samples", "simple.jpg"),
"rb",
) as f:
self.client.patch(
f"{self.ENDPOINT}1/",
{
"app_logo": f,
},
)
config = ApplicationConfiguration.objects.first()
old_logo = config.app_logo
self.assertTrue(os.path.exists(old_logo.path))
with open(
os.path.join(os.path.dirname(__file__), "samples", "simple.png"),
"rb",
) as f:
self.client.patch(
f"{self.ENDPOINT}1/",
{
"app_logo": f,
},
)
self.assertFalse(os.path.exists(old_logo.path))