Utilities for programatically constructing page trees in Wagtail
Project description
Wagtail Foliage
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
Release history Release notifications | RSS feed
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56aeed96fae21409a1c882b0127131e010fba724414f9a5cbc5a40a91ed34d33 |
|
MD5 | 41f32fa9d51b370b476f48efecb62214 |
|
BLAKE2b-256 | c8525d99db80efa26052459fed0aedaee2a745f33eda557b53407882a8fcec63 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 027b0551b6f979b0c9ecf14d63c44b4932c56297ac931612e6f59b8ed5f60f3d |
|
MD5 | 2615593b201628707391c9d6745a1a2b |
|
BLAKE2b-256 | 25016b9dd630f8aa12a06af3dc7620ebff124551346adb803b3eb9dd042549fd |