annotate tests/test_templating_jinjaengine.py @ 1117:e8511fed42a3

serve: Indicate where to find the admin panel in the console output.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 25 Feb 2018 23:18:47 -0800
parents 45ad976712ec
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 import pytest
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
2 from .mockutil import mock_fs, mock_fs_scope
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
3 from .rdrutil import render_simple_page
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 app_config = {
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
7 'site': {
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
8 'default_format': 'none',
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
9 'default_template_engine': 'jinja'},
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
10 'foo': 'bar'}
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 page_config = {'layout': 'none'}
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 open_patches = ['jinja2.environment', 'jinja2.utils']
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 @pytest.mark.parametrize(
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
17 'contents, expected',
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
18 [
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
19 ("Raw text", "Raw text"),
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
20 ("This is {{foo}}", "This is bar"),
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
21 ("Info:\nMy URL: {{page.url}}\n",
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
22 "Info:\nMy URL: /foo.html")
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
23 ])
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24 def test_simple(contents, expected):
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 fs = (mock_fs()
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
26 .withConfig(app_config)
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
27 .withPage('pages/foo', config=page_config, contents=contents))
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28 with mock_fs_scope(fs, open_patches=open_patches):
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
29 page = fs.getSimplePage('foo.md')
979
45ad976712ec tests: Big push to get the tests to pass again.
Ludovic Chabant <ludovic@chabant.com>
parents: 974
diff changeset
30 output = render_simple_page(page)
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 assert output == expected
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 def test_layout():
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 contents = "Blah\n"
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36 layout = "{{content}}\nFor site: {{foo}}\n"
452
55026b7bb1bf tests: Fix Jinja2 test.
Ludovic Chabant <ludovic@chabant.com>
parents: 369
diff changeset
37 expected = "Blah\n\nFor site: bar"
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 fs = (mock_fs()
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
39 .withConfig(app_config)
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
40 .withAsset('templates/blah.jinja', layout)
979
45ad976712ec tests: Big push to get the tests to pass again.
Ludovic Chabant <ludovic@chabant.com>
parents: 974
diff changeset
41 .withPage('pages/foo', config={'layout': 'blah.jinja'},
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
42 contents=contents))
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 with mock_fs_scope(fs, open_patches=open_patches):
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
44 page = fs.getSimplePage('foo.md')
979
45ad976712ec tests: Big push to get the tests to pass again.
Ludovic Chabant <ludovic@chabant.com>
parents: 974
diff changeset
45 output = render_simple_page(page)
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
46 assert output == expected
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
47
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
48
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
49 def test_partial():
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
50 contents = "Info:\n{% include 'page_info.jinja' %}\n"
979
45ad976712ec tests: Big push to get the tests to pass again.
Ludovic Chabant <ludovic@chabant.com>
parents: 974
diff changeset
51 partial = "- URL: {{page.url}}\n- SLUG: {{page.route.slug}}\n"
369
4b1019bb2533 serve: Giant refactor to change how we handle data when serving pages.
Ludovic Chabant <ludovic@chabant.com>
parents: 189
diff changeset
52 expected = "Info:\n- URL: /foo.html\n- SLUG: foo"
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
53 fs = (mock_fs()
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
54 .withConfig(app_config)
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
55 .withAsset('templates/page_info.jinja', partial)
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
56 .withPage('pages/foo', config=page_config, contents=contents))
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
57 with mock_fs_scope(fs, open_patches=open_patches):
974
72f17534d58e tests: First pass on making unit tests work again.
Ludovic Chabant <ludovic@chabant.com>
parents: 711
diff changeset
58 page = fs.getSimplePage('foo.md')
979
45ad976712ec tests: Big push to get the tests to pass again.
Ludovic Chabant <ludovic@chabant.com>
parents: 974
diff changeset
59 output = render_simple_page(page)
189
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
60 assert output == expected
a333cdadf5b0 tests: Add tests for Jinja template engine.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
61