7
This repository has been archived on 2023-05-07. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cavemanon-wagtail-personali…/tests/fixtures.py
2017-06-02 11:23:39 +02:00

47 lines
1.5 KiB
Python

import pytest
from django.contrib.auth.models import AnonymousUser
from django.contrib.messages.storage.fallback import FallbackStorage
from django.contrib.sessions.backends.db import SessionStore
from django.test.client import RequestFactory as BaseRequestFactory
from tests.factories.page import ContentPageFactory, RegularPageFactory
from tests.factories.segment import SegmentFactory
from tests.factories.site import SiteFactory
@pytest.fixture(scope='function')
def site():
root_page = ContentPageFactory(parent=None, slug='')
site = SiteFactory(is_default_site=True, root_page=root_page)
page1 = ContentPageFactory(parent=root_page, slug='page-1')
page2 = ContentPageFactory(parent=root_page, slug='page-2')
ContentPageFactory(parent=page1, slug='page-1-1')
ContentPageFactory(parent=page2, slug='page-2-1')
RegularPageFactory(parent=root_page, slug='regular')
return site
@pytest.fixture
def segmented_page(site):
page = ContentPageFactory(parent=site.root_page, slug='personalised')
segment = SegmentFactory()
return page.personalisation_metadata.copy_for_segment(segment)
@pytest.fixture()
def rf():
"""RequestFactory instance"""
return RequestFactory()
class RequestFactory(BaseRequestFactory):
def request(self, user=None, **request):
request = super(RequestFactory, self).request(**request)
request.user = AnonymousUser()
request.session = SessionStore()
request._messages = FallbackStorage(request)
return request