7

update exclude varient format and add variants to tests

This commit is contained in:
sewagodimo
2019-01-10 12:41:53 +02:00
parent f054b86e07
commit 9235932f00
2 changed files with 17 additions and 12 deletions

View File

@ -98,18 +98,18 @@ def parse_tag(token, parser):
def exclude_variants(pages):
"""Checks if page is not a variant
:param pages: List of pages to check
:type pages: list
:return: List of pages that aren't variants
:rtype: list
:param pages: List | Queryset of pages to check
:type pages: list or querset
:return: List|Queryset of pages that aren't variants
:rtype: list or queryset (depending on the param type)
"""
for page in pages:
if not ((hasattr(page, 'personalisation_metadata') is False
) or (hasattr(page, 'personalisation_metadata') and page.personalisation_metadata is None
) or (hasattr(page, 'personalisation_metadata') and page.personalisation_metadata.is_canonical)):
if (type(pages) == list):
pages.remove(page)
else:
pages.exclude(pk=page.pk)
if hasattr(page, 'personalisation_metadata') is not False and \
page.personalisation_metadata is not None and \
page.personalisation_metadata.is_canonical is not True:
if (type(pages) == list):
pages.remove(page)
else:
pages.exclude(pk=page.pk)
return pages

View File

@ -69,5 +69,10 @@ def test_exclude_variants_with_pages_querysets():
page = WagtailPage(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i))
page.save()
pages = WagtailPage.objects.all().order_by('id')
# add variants
for page in pages:
page.personalisation_metadata = Metadata(is_canonical=False)
pages = WagtailPage.objects.all().order_by('id')
result = exclude_variants(pages)
assert result == pages
assert type(result) == type(pages)
assert result != pages