59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
from wagtail_personalisation.utils import impersonate_other_page, exclude_variants
|
|
|
|
|
|
class Page(object):
|
|
def __init__(self, path, depth, url_path, title):
|
|
self.path = path
|
|
self.depth = depth
|
|
self.url_path = url_path
|
|
self.title = title
|
|
|
|
def __eq__(self, other):
|
|
return self.__dict__ == other.__dict__
|
|
|
|
|
|
def test_impersonate_other_page():
|
|
page = Page(path="/", depth=0, url_path="/", title="Hoi")
|
|
other_page = Page(path="/other", depth=1, url_path="/other", title="Doei")
|
|
|
|
impersonate_other_page(page, other_page)
|
|
|
|
assert page == other_page
|
|
|
|
|
|
class Metadata(object):
|
|
def __init__(self, is_canonical=True):
|
|
self.is_canonical = is_canonical
|
|
|
|
|
|
class PersonalisationMetadataPage(object):
|
|
def __init__(self):
|
|
self.personalisation_metadata = Metadata()
|
|
|
|
|
|
def test_exclude_variants_includes_pages_with_no_metadata_property():
|
|
page = PersonalisationMetadataPage()
|
|
del page.personalisation_metadata
|
|
result = exclude_variants([page])
|
|
assert result == [page]
|
|
|
|
|
|
def test_exclude_variants_includes_pages_with_metadata_none():
|
|
page = PersonalisationMetadataPage()
|
|
page.personalisation_metadata = None
|
|
result = exclude_variants([page])
|
|
assert result == [page]
|
|
|
|
|
|
def test_exclude_variants_includes_pages_with_metadata_canonical():
|
|
page = PersonalisationMetadataPage()
|
|
result = exclude_variants([page])
|
|
assert result == [page]
|
|
|
|
|
|
def test_exclude_variants_excludes_pages_with_metadata_not_canonical():
|
|
page = PersonalisationMetadataPage()
|
|
page.personalisation_metadata.is_canonical = False
|
|
result = exclude_variants([page])
|
|
assert result == []
|