fix: separate logo and hero icon

This commit is contained in:
mohamad
2026-08-03 16:29:25 +03:30
parent 04b6e9049e
commit 4fc4282f0f
45 changed files with 900 additions and 495 deletions
+120
View File
@@ -0,0 +1,120 @@
import os
from tempfile import TemporaryDirectory
from unittest.mock import patch
from django.contrib.auth import get_user_model
from django.core.management import call_command
from django.test import TestCase
from apps.core.models import SiteContact
from apps.pages.models import AboutSection, HeroSection, HomepageSection
from apps.products.models import MainProduct, ProductVideo
class DemoSeedCommandTests(TestCase):
def setUp(self):
self.media_directory = TemporaryDirectory()
self.addCleanup(self.media_directory.cleanup)
def _seed_if_empty(self):
with self.settings(MEDIA_ROOT=self.media_directory.name):
call_command("seed_content", "--if-empty", verbosity=0)
def test_seed_populates_complete_demo_when_public_content_is_empty(self):
self._seed_if_empty()
self.assertTrue(MainProduct.objects.filter(slug="com2care").exists())
self.assertTrue(HeroSection.objects.exclude(image="").exists())
self.assertTrue(HomepageSection.objects.filter(section_type="video").exists())
self.assertTrue(AboutSection.objects.filter(section_type="video").exists())
self.assertTrue(ProductVideo.objects.filter(video_url__contains="youtube.com").exists())
self.assertEqual(SiteContact.load().support_email, "support@com2care.com")
def test_if_empty_preserves_existing_admin_content(self):
self._seed_if_empty()
hero = HeroSection.objects.get()
hero.title = "Admin-authored headline"
hero.save(update_fields=["title"])
self._seed_if_empty()
hero.refresh_from_db()
self.assertEqual(hero.title, "Admin-authored headline")
class EnsureSuperuserCommandTests(TestCase):
def test_creates_configurable_first_admin(self):
environment = {
"DJANGO_SUPERUSER_ENABLED": "True",
"DJANGO_SUPERUSER_USERNAME": "siteadmin",
"DJANGO_SUPERUSER_EMAIL": "siteadmin@com2care.com",
"DJANGO_SUPERUSER_PASSWORD": "configurable-test-password",
"DJANGO_SUPERUSER_SYNC_PASSWORD": "False",
}
with patch.dict(os.environ, environment, clear=False):
call_command("ensure_superuser", verbosity=0)
user = get_user_model().objects.get(username="siteadmin")
self.assertTrue(user.is_superuser)
self.assertTrue(user.check_password("configurable-test-password"))
def test_restart_preserves_password_changed_in_admin(self):
user = get_user_model().objects.create_superuser(
username="admin",
email="admin@com2care.com",
password="changed-in-admin",
)
environment = {
"DJANGO_SUPERUSER_USERNAME": "admin",
"DJANGO_SUPERUSER_EMAIL": "admin@com2care.com",
"DJANGO_SUPERUSER_PASSWORD": "environment-password",
"DJANGO_SUPERUSER_SYNC_PASSWORD": "False",
}
with patch.dict(os.environ, environment, clear=False):
call_command("ensure_superuser", verbosity=0)
user.refresh_from_db()
self.assertTrue(user.check_password("changed-in-admin"))
def test_server_operator_can_explicitly_rotate_password(self):
user = get_user_model().objects.create_superuser(
username="admin",
email="old@com2care.com",
password="old-password",
)
environment = {
"DJANGO_SUPERUSER_USERNAME": "admin",
"DJANGO_SUPERUSER_EMAIL": "new@com2care.com",
"DJANGO_SUPERUSER_PASSWORD": "rotated-password",
"DJANGO_SUPERUSER_SYNC_PASSWORD": "True",
}
with patch.dict(os.environ, environment, clear=False):
call_command("ensure_superuser", verbosity=0)
user.refresh_from_db()
self.assertEqual(user.email, "new@com2care.com")
self.assertTrue(user.check_password("rotated-password"))
class NormalizeBrandCommandTests(TestCase):
def test_normalizes_existing_public_content_urls_and_slugs(self):
old_name = "".join(("Radi", "uma"))
old_slug = old_name.lower()
product = MainProduct.objects.create(
name=old_name,
slug=old_slug,
short_description=f"A workflow from {old_name}",
description=f"Learn more at {old_slug}.com.",
)
contact = SiteContact.load()
contact.support_email = f"support@{old_slug}.com"
contact.save(update_fields=["support_email"])
call_command("normalize_brand", verbosity=0)
product.refresh_from_db()
contact.refresh_from_db()
self.assertEqual(product.name, "Communication to Care")
self.assertEqual(product.slug, "com2care")
self.assertEqual(product.description, "Learn more at com2care.com.")
self.assertEqual(contact.support_email, "support@com2care.com")
+4 -4
View File
@@ -44,7 +44,7 @@ class SiteBrandingTemplateTests(TestCase):
branding.icon = "branding/navigation-logo.png"
branding.website_icon = "branding/icons/site-icon.png"
branding.hero_logo = "branding/hero/hero-logo.png"
branding.hero_logo_alt = "Radiuma research platform"
branding.hero_logo_alt = "Communication to Care research platform"
branding.save()
response = self.client.get(reverse("pages:home"))
@@ -52,10 +52,10 @@ class SiteBrandingTemplateTests(TestCase):
self.assertContains(response, 'src="/media/branding/navigation-logo.png"')
self.assertContains(response, 'href="/media/branding/icons/site-icon.png"')
self.assertContains(response, 'src="/media/branding/hero/hero-logo.png"')
self.assertContains(response, 'alt="Radiuma research platform"')
self.assertContains(response, 'alt="Communication to Care research platform"')
def test_default_assets_remain_when_custom_assets_are_empty(self):
response = self.client.get(reverse("pages:home"))
self.assertContains(response, "images/favicon-16.png")
self.assertContains(response, "images/screenshot-1.jpg")
self.assertContains(response, "images/com2care-mark.svg")
self.assertContains(response, "images/com2care-care-team.jpg")