Mercurial > piecrust2
view tests/test_templating_pystacheengine.py @ 334:b034f6f15e22
bake: Several bug taxonomy-related fixes for incorrect incremental bakes.
* Improve how the baker processes taxonomy terms and figures out what needs
to be re-baked or not.
* Create bake entries for clean taxnomy terms so they're not deleted by an
incremental bake.
* Add more information to bake records.
* Slugify taxonomy terms is now done by the route in one place.
* Fix a bug where the cache key for invalidating rendered segments was not
computed the same way as when the caching was done.
* Fix how term combinations are passed around, rendered, printed, parsed, etc.
(TODO: more word needed in the routing functions)
* Expose to the template whether a taxonomy term is a combination or not.
* Display term combinations better in the built-in theme.
* Rename `route.taxonomy` to `route.taxonomy_name` to prevent confusion.
* Add options to show bake records for previous bakes.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Fri, 03 Apr 2015 10:59:50 -0700 |
parents | 139179dc7abd |
children | 4b1019bb2533 |
line wrap: on
line source
import pytest from .mockutil import ( mock_fs, mock_fs_scope, get_simple_page, render_simple_page) app_config = { 'site': { 'default_format': 'none', 'default_template_engine': 'mustache'}, 'foo': 'bar'} page_config = {'layout': 'none'} open_patches = ['pystache.common'] @pytest.mark.parametrize( 'contents, expected', [ ("Raw text", "Raw text"), ("This is {{foo}}", "This is bar"), ("Info:\n{{#page}}\nMy URL: {{url}}\n{{/page}}\n", "Info:\nMy URL: /foo\n") ]) def test_simple(contents, expected): fs = (mock_fs() .withConfig(app_config) .withPage('pages/foo', config=page_config, contents=contents)) with mock_fs_scope(fs, open_patches=open_patches): app = fs.getApp() page = get_simple_page(app, 'foo.md') output = render_simple_page(page, '/foo') assert output == expected def test_layout(): contents = "Blah\n" layout = "{{content}}\nFor site: {{foo}}\n" expected = "Blah\n\nFor site: bar\n" fs = (mock_fs() .withConfig(app_config) .withAsset('templates/blah.mustache', layout) .withPage('pages/foo', config={'layout': 'blah'}, contents=contents)) with mock_fs_scope(fs, open_patches=open_patches): app = fs.getApp() page = get_simple_page(app, 'foo.md') output = render_simple_page(page, '/foo') assert output == expected def test_partial(): contents = "Info:\n{{#page}}\n{{> page_info}}\n{{/page}}\n" partial = "- URL: {{url}}\n- SLUG: {{slug}}\n" expected = "Info:\n- URL: /foo\n- SLUG: foo\n" fs = (mock_fs() .withConfig(app_config) .withAsset('templates/page_info.mustache', partial) .withPage('pages/foo', config=page_config, contents=contents)) with mock_fs_scope(fs, open_patches=open_patches): app = fs.getApp() page = get_simple_page(app, 'foo.md') output = render_simple_page(page, '/foo') assert output == expected