fix: separate logo and hero icon
This commit is contained in:
@@ -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")
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user