"""The page shell: layout, role-based menu, preferences applied to pages (AD-15, AD-16).""" import re from pathlib import Path import pytest from django.test import Client from django.utils import translation from portal.tests.test_signin import sign_in pytestmark = pytest.mark.django_db(transaction=True) STATIC = Path(__file__).resolve().parent.parent / "static" / "portal" @pytest.fixture def people(adapters): d = adapters.directory d.add_user("alice", display_name="Alice Anders") d.add_user("pub", display_name="Pat Publisher", is_publisher=True) d.add_user("boss", display_name="Bo Boss", is_admin=True, is_publisher=True) d.add_user("admin", display_name="Ann Admin", is_admin=True) return d def page(adapters, username="alice", path="/", **cookies): client, _ = sign_in(adapters, username) for name, value in cookies.items(): client.cookies[name] = value return client.get(path), client def menu_of(response): html = response.content.decode() nav = re.search(r'