def site_content(request): site = get_cached_class(settings.CORE_SITE_FINDER).get_site(request) if site._meta.label == get_app_site_string(): site_cache_key = f"{site.pk}-context-{site._meta.label}" site_context = cache.get(site_cache_key) if not site_context: site_context, created = SiteContent.objects.get_or_create(site=site) site_context = site_context.serialize() cache.set(site_cache_key, site_context) return { "base_context": { "site_content": site_context, "scheme": request.is_secure() and 'https' or 'http', "is_authenticated": request.user.is_authenticated } }
import pytest from django.apps import apps from django.conf import settings from django.core.files import File from cabins.core.cache import get_cached_class from cabins.front.models import SiteContent, SocialMedia from cabins.page import get_page_string from .core_fixtures import image_fixture Site = get_cached_class(settings.CORE_SITE_FINDER).get_model() Image = apps.get_model(settings.CORE_IMAGE_MODEL) Page = apps.get_model(get_page_string()) @pytest.fixture def image(db) -> Image: with open(image_fixture["file"], 'rb') as _file: file_data = File(_file) image = Image(title="test_home") image.file.save(name="test_home", content=file_data) image.save() @pytest.fixture def site(db) -> Site: return Site.objects.create(hostname="test.com", site_name="test", port=8000, root_page=Page.objects.filter(depth=1).first())
def test_core_site_utils(db, site): # noqa SiteUtils = get_cached_class("cabins.core.utils:SiteUtils") request = rf(host_name="test.com").get("/") site_model = SiteUtils.get_site(request) assert site_model.domain == "test.com" assert "sites.Site" == SiteUtils.get_model()._meta.label
def test_core_wagtail_site_utils(db, wagtail_site): # noqa SiteUtils = get_cached_class(settings.CORE_SITE_FINDER) request = rf(host_name="test.com").get("/") site_model = SiteUtils.get_site(request) assert site_model.hostname == "test.com" assert "wagtailcore.Site" == SiteUtils.get_model()._meta.label
def wagtail_site(db): Site = get_cached_class("cabins.back.utils:SiteUtils").get_model() return Site.objects.create(hostname="test.com", site_name="testing", root_page=Page.objects.get(depth=1))
def site(db): Site = get_cached_class("cabins.core.utils:SiteUtils").get_model() return Site.objects.create( domain="test.com", name="testing", )