Skip to main content

Utilities for programatically constructing page trees in Wagtail

Project description

Wagtail Foliage

CircleCI

Utilities for programmatically building page trees in Wagtail for automated tests, default site structures, and more.

Requirements

Wagtail Foliage supports:

  • Python 3.4, 3.5, 3.6, and 3.7
  • Django 1.11, 2.0, and 2.1
  • Wagtail 1.13, 2.3, and 2.4

These are the currently supported versions for each project as of December 2018, excepting the exclusion of Python 2.7 from this list.

Installation

pip install wagtail-foliage

Usage

Use as a context manager

from django.db import TestCase
from foliage.contextmanagers import page_tree

from myapp.models import HomePage, InsidePage


class MyAppTestCase(TestCase):
    def test_with_pages(self):
        PAGES = [
            (HomePage(title='Home Page'), [
                InsidePage(title='Inside Page'),
                (InsidePage(title='Inside Page With Children'), [
                    InsidePage(title='Third Level Page'),
                    InsidePage(title='Another Third Level Page')
                ])
            ])
        ]
        with page_tree(PAGES):
            # Tests that rely on that page tree go here. The context manager
            # will automatically set the top level page as the Wagtail site's
            # root page

Use as a decorator

from django.db import TestCase
from foliage.contextmanagers import page_tree

from myapp.models import HomePage, InsidePage


PAGES = [
    (HomePage(title='Home Page'), [
        InsidePage(title='Inside Page'),
        (InsidePage(title='Inside Page With Children'), [
            InsidePage(title='Third Level Page'),
            InsidePage(title='Another Third Level Page')
        ])
    ])
]


class MyAppTestCase(TestCase):
    @page_tree(PAGES)
    def test_with_pages(self):
        # Tests that rely on that page tree go here. The context manager
        # will automatically set the top level page as the Wagtail site's
        # root page

Use the low-level API

from foliage.utils import build_page_tree

from myapp.models import HomePage, InsidePage

new_pages = build_page_tree([
    (HomePage(title='Home Page'), [
        InsidePage(title='Inside Page'),
        (InsidePage(title='Inside Page With Children'), [
            InsidePage(title='Third Level Page'),
            InsidePage(title='Another Third Level Page')
        ])
    ])
])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wagtail-foliage-0.1.1.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

wagtail_foliage-0.1.1-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file wagtail-foliage-0.1.1.tar.gz.

File metadata

  • Download URL: wagtail-foliage-0.1.1.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for wagtail-foliage-0.1.1.tar.gz
Algorithm Hash digest
SHA256 56aeed96fae21409a1c882b0127131e010fba724414f9a5cbc5a40a91ed34d33
MD5 41f32fa9d51b370b476f48efecb62214
BLAKE2b-256 c8525d99db80efa26052459fed0aedaee2a745f33eda557b53407882a8fcec63

See more details on using hashes here.

File details

Details for the file wagtail_foliage-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: wagtail_foliage-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for wagtail_foliage-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 027b0551b6f979b0c9ecf14d63c44b4932c56297ac931612e6f59b8ed5f60f3d
MD5 2615593b201628707391c9d6745a1a2b
BLAKE2b-256 25016b9dd630f8aa12a06af3dc7620ebff124551346adb803b3eb9dd042549fd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page