Mercurial > piecrust2
diff tests/test_sources_posts.py @ 95:cb6eadea0845
Fixed a bug with the `shallow` source. Add unit tests.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 07 Sep 2014 21:37:10 -0700 |
parents | |
children | e7b865f8f335 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test_sources_posts.py Sun Sep 07 21:37:10 2014 -0700 @@ -0,0 +1,44 @@ +import os +import pytest +from .mockutil import mock_fs, mock_fs_scope + + +@pytest.mark.parametrize('fs, src_type, expected_paths, expected_metadata', [ + (mock_fs(), 'flat', [], []), + (mock_fs().withPage('test/2014-01-01_foo.md'), + 'flat', + ['2014-01-01_foo.md'], + [(2014, 1, 1, 'foo')]), + (mock_fs(), 'shallow', [], []), + (mock_fs().withPage('test/2014/01-01_foo.md'), + 'shallow', + ['2014/01-01_foo.md'], + [(2014, 1, 1, 'foo')]), + (mock_fs(), 'hierarchy', [], []), + (mock_fs().withPage('test/2014/01/01_foo.md'), + 'hierarchy', + ['2014/01/01_foo.md'], + [(2014, 1, 1, 'foo')]), + ]) +def test_post_source_factories(fs, src_type, expected_paths, expected_metadata): + fs.withConfig({ + 'site': { + 'sources': { + 'test': {'type': 'posts/%s' % src_type}}, + 'routes': [ + {'url': '/%slug%', 'source': 'test'}] + } + }) + fs.withDir('kitchen/test') + with mock_fs_scope(fs): + app = fs.getApp(cache=False) + s = app.getSource('test') + facs = list(s.buildPageFactories()) + paths = [f.rel_path for f in facs] + assert paths == expected_paths + metadata = [ + (f.metadata['year'], f.metadata['month'], + f.metadata['day'], f.metadata['slug']) + for f in facs] + assert metadata == expected_metadata +