annotate tests/test_serving.py @ 550:6f216c1ab6b1

bake: Add a flag to know which record entries got collapsed from last run. This makes it possible to find entries for things that were actually baked during the current run, as opposed to skipped because they were "clean".
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 04 Aug 2015 21:22:30 -0700
parents 16e705c58cae
children 64e696adb99e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 import re
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 import pytest
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 import mock
324
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
4 from piecrust.data.filters import (
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
5 PaginationFilter, HasFilterClause, IsFilterClause,
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
6 page_value_accessor)
369
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
7 from piecrust.rendering import QualifiedPage, PageRenderingContext, render_page
377
b45322924d18 tests: Fix serving unit-tests.
Ludovic Chabant <ludovic@chabant.com>
parents: 369
diff changeset
8 from piecrust.serving.server import find_routes
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 from piecrust.sources.base import REALM_USER, REALM_THEME
324
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
10 from .mockutil import mock_fs, mock_fs_scope
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 @pytest.mark.parametrize('uri, route_specs, expected',
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 [
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 ('/',
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 [{'src': 'pages', 'pat': '(?P<path>.*)'}],
332
d8c28e496bb3 tests: Fix test.
Ludovic Chabant <ludovic@chabant.com>
parents: 324
diff changeset
17 [('pages', {'path': '/'})]),
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 ('/',
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19 [{'src': 'pages', 'pat': '(?P<path>.*)'},
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 {'src': 'theme', 'pat': '(?P<path>.*)', 'realm': REALM_THEME}],
332
d8c28e496bb3 tests: Fix test.
Ludovic Chabant <ludovic@chabant.com>
parents: 324
diff changeset
21 [('pages', {'path': '/'}), ('theme', {'path': '/'})])
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22 ])
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 def test_find_routes(uri, route_specs, expected):
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 routes = []
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 for rs in route_specs:
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 m = mock.Mock()
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 m.source_name = rs['src']
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 m.source_realm = rs.setdefault('realm', REALM_USER)
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 m.uri_re = re.compile(rs['pat'])
176
d47d9493bb0a routes: When matching URIs, return metadata directly instead of the match object.
Ludovic Chabant <ludovic@chabant.com>
parents: 175
diff changeset
30 m.matchUri = lambda u: m.uri_re.match(u).groupdict()
3
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 routes.append(m)
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32 matching = find_routes(routes, uri)
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 assert len(matching) == len(expected)
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 for i in range(len(matching)):
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 route, metadata = matching[i]
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 exp_source, exp_md = expected[i]
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 assert route.source_name == exp_source
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 assert metadata == exp_md
f485ba500df3 Gigantic change to basically make PieCrust 2 vaguely functional.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40
324
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
41
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
42 @pytest.mark.parametrize(
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
43 'tag, expected_indices',
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
44 [
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
45 ('foo', [1, 2, 4, 5, 6]),
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
46 ('bar', [2, 3, 4, 6, 8]),
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
47 ('whatever', [5, 8]),
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
48 ('unique', [7]),
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
49 ('missing', None)
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
50 ])
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
51 def test_serve_tag_page(tag, expected_indices):
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
52 tags = [
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
53 ['foo'],
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
54 ['foo', 'bar'],
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
55 ['bar'],
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
56 ['bar', 'foo'],
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
57 ['foo', 'whatever'],
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
58 ['foo', 'bar'],
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
59 ['unique'],
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
60 ['whatever', 'bar']]
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
61
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
62 def config_factory(i):
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
63 c = {'title': 'Post %d' % (i + 1)}
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
64 c['tags'] = list(tags[i])
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
65 return c
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
66
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
67 fs = (mock_fs()
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
68 .withPages(8, 'posts/2015-03-{idx1:02}_post{idx1:02}.md',
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
69 config_factory)
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
70 .withPage('pages/_tag.md', {'layout': 'none', 'format': 'none'},
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
71 "Pages in {{tag}}\n"
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
72 "{%for p in pagination.posts -%}\n"
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
73 "{{p.title}}\n"
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
74 "{%endfor%}"))
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
75 with mock_fs_scope(fs):
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
76 app = fs.getApp()
369
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
77 page = app.getSource('pages').getPage({'slug': '_tag', 'tag': tag})
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
78 route = app.getTaxonomyRoute('tags', 'posts')
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
79 route_metadata = {'slug': '_tag', 'tag': tag}
324
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
80
369
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
81 qp = QualifiedPage(page, route, route_metadata)
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
82 ctx = PageRenderingContext(qp)
515
16e705c58cae internal: Improve handling of taxonomy term slugification.
Ludovic Chabant <ludovic@chabant.com>
parents: 377
diff changeset
83 ctx.setTaxonomyFilter(tag)
324
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
84 rp = render_page(ctx)
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
85
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
86 expected = "Pages in %s\n" % tag
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
87 if expected_indices:
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
88 for i in reversed(expected_indices):
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
89 expected += "Post %d\n" % i
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
90 assert expected == rp.content
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
91
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
92
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
93 @pytest.mark.parametrize(
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
94 'category, expected_indices',
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
95 [
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
96 ('foo', [1, 2, 4]),
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
97 ('bar', [3, 6]),
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
98 ('missing', None)
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
99 ])
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
100 def test_serve_category_page(category, expected_indices):
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
101 categories = [
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
102 'foo', 'foo', 'bar', 'foo', None, 'bar']
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
103
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
104 def config_factory(i):
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
105 c = {'title': 'Post %d' % (i + 1)}
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
106 if categories[i]:
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
107 c['category'] = categories[i]
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
108 return c
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
109
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
110 fs = (mock_fs()
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
111 .withPages(6, 'posts/2015-03-{idx1:02}_post{idx1:02}.md',
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
112 config_factory)
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
113 .withPage('pages/_category.md', {'layout': 'none', 'format': 'none'},
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
114 "Pages in {{category}}\n"
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
115 "{%for p in pagination.posts -%}\n"
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
116 "{{p.title}}\n"
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
117 "{%endfor%}"))
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
118 with mock_fs_scope(fs):
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
119 app = fs.getApp()
369
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
120 page = app.getSource('pages').getPage({'slug': '_category',
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
121 'category': category})
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
122 route = app.getTaxonomyRoute('categories', 'posts')
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
123 route_metadata = {'slug': '_category', 'category': category}
324
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
124
369
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
125 qp = QualifiedPage(page, route, route_metadata)
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 332
diff changeset
126 ctx = PageRenderingContext(qp)
515
16e705c58cae internal: Improve handling of taxonomy term slugification.
Ludovic Chabant <ludovic@chabant.com>
parents: 377
diff changeset
127 ctx.setTaxonomyFilter(category)
324
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
128 rp = render_page(ctx)
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
129
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
130 expected = "Pages in %s\n" % category
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
131 if expected_indices:
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
132 for i in reversed(expected_indices):
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
133 expected += "Post %d\n" % i
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
134 assert expected == rp.content
65e6d72f3877 bake/serve: Fix how taxonomy index pages are setup and rendered.
Ludovic Chabant <ludovic@chabant.com>
parents: 176
diff changeset
135