Mercurial > piecrust2
comparison tests/test_serving.py @ 711:ab5c6a8ae90a
bake: Replace hard-coded taxonomy support with "generator" system.
* Taxonomies are now implemented one or more `TaxonomyGenerator`s.
* A `BlogArchivesGenerator` stub is there but non-functional.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 26 May 2016 19:52:47 -0700 |
parents | f987b29d6fab |
children | 606f6d57b5df |
comparison
equal
deleted
inserted
replaced
710:e85f29b28b84 | 711:ab5c6a8ae90a |
---|---|
74 "{{p.title}}\n" | 74 "{{p.title}}\n" |
75 "{%endfor%}")) | 75 "{%endfor%}")) |
76 with mock_fs_scope(fs): | 76 with mock_fs_scope(fs): |
77 app = fs.getApp() | 77 app = fs.getApp() |
78 page = app.getSource('pages').getPage({'slug': '_tag', 'tag': tag}) | 78 page = app.getSource('pages').getPage({'slug': '_tag', 'tag': tag}) |
79 route = app.getTaxonomyRoute('tags', 'posts') | 79 route = app.getGeneratorRoute('posts_tags') |
80 assert route is not None | |
81 | |
80 route_metadata = {'slug': '_tag', 'tag': tag} | 82 route_metadata = {'slug': '_tag', 'tag': tag} |
81 | |
82 qp = QualifiedPage(page, route, route_metadata) | 83 qp = QualifiedPage(page, route, route_metadata) |
83 ctx = PageRenderingContext(qp) | 84 ctx = PageRenderingContext(qp) |
84 ctx.setTaxonomyFilter(tag) | 85 route.generator.prepareRenderContext(ctx) |
85 rp = render_page(ctx) | 86 rp = render_page(ctx) |
86 | 87 |
87 expected = "Pages in %s\n" % tag | 88 expected = "Pages in %s\n" % tag |
88 if expected_indices: | 89 if expected_indices: |
89 for i in reversed(expected_indices): | 90 for i in reversed(expected_indices): |
107 if categories[i]: | 108 if categories[i]: |
108 c['category'] = categories[i] | 109 c['category'] = categories[i] |
109 return c | 110 return c |
110 | 111 |
111 fs = (mock_fs() | 112 fs = (mock_fs() |
112 .withConfig() | 113 .withConfig({ |
114 'site': { | |
115 'taxonomies': { | |
116 'categories': {'term': 'category'} | |
117 } | |
118 } | |
119 }) | |
113 .withPages(6, 'posts/2015-03-{idx1:02}_post{idx1:02}.md', | 120 .withPages(6, 'posts/2015-03-{idx1:02}_post{idx1:02}.md', |
114 config_factory) | 121 config_factory) |
115 .withPage('pages/_category.md', {'layout': 'none', 'format': 'none'}, | 122 .withPage('pages/_category.md', {'layout': 'none', 'format': 'none'}, |
116 "Pages in {{category}}\n" | 123 "Pages in {{category}}\n" |
117 "{%for p in pagination.posts -%}\n" | 124 "{%for p in pagination.posts -%}\n" |
119 "{%endfor%}")) | 126 "{%endfor%}")) |
120 with mock_fs_scope(fs): | 127 with mock_fs_scope(fs): |
121 app = fs.getApp() | 128 app = fs.getApp() |
122 page = app.getSource('pages').getPage({'slug': '_category', | 129 page = app.getSource('pages').getPage({'slug': '_category', |
123 'category': category}) | 130 'category': category}) |
124 route = app.getTaxonomyRoute('categories', 'posts') | 131 route = app.getGeneratorRoute('posts_categories') |
132 assert route is not None | |
133 | |
125 route_metadata = {'slug': '_category', 'category': category} | 134 route_metadata = {'slug': '_category', 'category': category} |
126 | |
127 qp = QualifiedPage(page, route, route_metadata) | 135 qp = QualifiedPage(page, route, route_metadata) |
128 ctx = PageRenderingContext(qp) | 136 ctx = PageRenderingContext(qp) |
129 ctx.setTaxonomyFilter(category) | 137 route.generator.prepareRenderContext(ctx) |
130 rp = render_page(ctx) | 138 rp = render_page(ctx) |
131 | 139 |
132 expected = "Pages in %s\n" % category | 140 expected = "Pages in %s\n" % category |
133 if expected_indices: | 141 if expected_indices: |
134 for i in reversed(expected_indices): | 142 for i in reversed(expected_indices): |