/hyde/tests/ext/test_flattener.py
http://github.com/hyde/hyde · Python · 68 lines · 49 code · 13 blank · 6 comment · 0 complexity · c60349a19e3badf9ddfb89075a4996c5 MD5 · raw file
- # -*- coding: utf-8 -*-
- """
- Use nose
- `$ pip install nose`
- `$ nosetests`
- """
- from hyde.generator import Generator
- from hyde.site import Site
- from hyde.model import Config
- from fswrap import File
- TEST_SITE = File(__file__).parent.parent.child_folder('_test')
- class TestFlattner(object):
- def setUp(self):
- TEST_SITE.make()
- TEST_SITE.parent.child_folder(
- 'sites/test_jinja').copy_contents_to(TEST_SITE)
- def tearDown(self):
- TEST_SITE.delete()
- def test_can_flatten(self):
- s = Site(TEST_SITE)
- cfg = """
- plugins:
- - hyde.ext.plugins.structure.FlattenerPlugin
- flattener:
- items:
- -
- source: blog
- target: ''
- """
- import yaml
- s.config = Config(TEST_SITE, config_dict=yaml.load(cfg))
- s.load()
- gen = Generator(s)
- gen.generate_all()
- assert not s.config.deploy_root_path.child_folder('blog').exists
- assert File(s.config.deploy_root_path.child('merry-christmas.html')).exists
- def test_flattener_fixes_nodes(self):
- s = Site(TEST_SITE)
- cfg = """
- plugins:
- - hyde.ext.plugins.structure.FlattenerPlugin
- flattener:
- items:
- -
- source: blog
- target: ''
- """
- import yaml
- s.config = Config(TEST_SITE, config_dict=yaml.load(cfg))
- s.load()
- gen = Generator(s)
- gen.generate_all()
- blog_node = s.content.node_from_relative_path('blog')
- assert blog_node
- assert blog_node.url == '/'