comparison tests/test_sources_autoconfig.py @ 242:f130365568ff

internal: Code reorganization to put less stuff in `sources.base`. Interfaces that sources can implement are in `sources.interfaces`. The default page source is in `sources.default`. The `SimplePageSource` is gone since most subclasses only wanted to do *some* stuff the same, but *lots* of stuff slightly different. I may have to revisit the code to extract exactly the code that's in common.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 18 Feb 2015 18:35:03 -0800
parents f43f19975671
children f512905ae812
comparison
equal deleted inserted replaced
241:85a6c7ba5e3b 242:f130365568ff
86 'fs, expected_paths, expected_metadata', 86 'fs, expected_paths, expected_metadata',
87 [ 87 [
88 (mock_fs(), [], []), 88 (mock_fs(), [], []),
89 (mock_fs().withPage('test/something.md'), 89 (mock_fs().withPage('test/something.md'),
90 ['something.md'], 90 ['something.md'],
91 [{'slug': 'something', 'config': {'foo': 0}}]), 91 [{'slug': 'something',
92 'config': {'foo': 0, 'foo_trail': [0]}}]),
92 (mock_fs().withPage('test/08_something.md'), 93 (mock_fs().withPage('test/08_something.md'),
93 ['08_something.md'], 94 ['08_something.md'],
94 [{'slug': 'something', 'config': {'foo': 8}}]) 95 [{'slug': 'something',
96 'config': {'foo': 8, 'foo_trail': [8]}}]),
97 (mock_fs().withPage('test/02_there/08_something.md'),
98 ['02_there/08_something.md'],
99 [{'slug': 'there/something',
100 'config': {'foo': 8, 'foo_trail': [2, 8]}}]),
95 ]) 101 ])
96 def test_ordered_source_factories(fs, expected_paths, expected_metadata): 102 def test_ordered_source_factories(fs, expected_paths, expected_metadata):
97 site_config = { 103 site_config = {
98 'sources': { 104 'sources': {
99 'test': {'type': 'ordered', 105 'test': {'type': 'ordered',
118 'fs, route_path, expected_path, expected_metadata', 124 'fs, route_path, expected_path, expected_metadata',
119 [ 125 [
120 (mock_fs(), 'missing', None, None), 126 (mock_fs(), 'missing', None, None),
121 (mock_fs().withPage('test/something.md'), 127 (mock_fs().withPage('test/something.md'),
122 'something', 'something.md', 128 'something', 'something.md',
123 {'slug': 'something', 'config': {'foo': 0}}), 129 {'slug': 'something',
130 'config': {'foo': 0, 'foo_trail': [0]}}),
124 (mock_fs().withPage('test/bar/something.md'), 131 (mock_fs().withPage('test/bar/something.md'),
125 'bar/something', 'bar/something.md', 132 'bar/something', 'bar/something.md',
126 {'slug': 'bar/something', 'config': {'foo': 0}}), 133 {'slug': 'bar/something',
134 'config': {'foo': 0, 'foo_trail': [0]}}),
127 (mock_fs().withPage('test/42_something.md'), 135 (mock_fs().withPage('test/42_something.md'),
128 'something', '42_something.md', 136 'something', '42_something.md',
129 {'slug': 'something', 'config': {'foo': 42}}), 137 {'slug': 'something',
138 'config': {'foo': 42, 'foo_trail': [42]}}),
130 (mock_fs().withPage('test/bar/42_something.md'), 139 (mock_fs().withPage('test/bar/42_something.md'),
131 'bar/something', 'bar/42_something.md', 140 'bar/something', 'bar/42_something.md',
132 {'slug': 'bar/something', 'config': {'foo': 42}}), 141 {'slug': 'bar/something',
142 'config': {'foo': 42, 'foo_trail': [42]}}),
133 143
134 ((mock_fs() 144 ((mock_fs()
135 .withPage('test/42_something.md') 145 .withPage('test/42_something.md')
136 .withPage('test/43_other_something.md')), 146 .withPage('test/43_other_something.md')),
137 'something', '42_something.md', 147 'something', '42_something.md',
138 {'slug': 'something', 'config': {'foo': 42}}), 148 {'slug': 'something',
149 'config': {'foo': 42, 'foo_trail': [42]}}),
139 ]) 150 ])
140 def test_ordered_source_find(fs, route_path, expected_path, 151 def test_ordered_source_find(fs, route_path, expected_path,
141 expected_metadata): 152 expected_metadata):
142 site_config = { 153 site_config = {
143 'sources': { 154 'sources': {
150 fs.withConfig({'site': site_config}) 161 fs.withConfig({'site': site_config})
151 fs.withDir('kitchen/test') 162 fs.withDir('kitchen/test')
152 with mock_fs_scope(fs): 163 with mock_fs_scope(fs):
153 app = fs.getApp() 164 app = fs.getApp()
154 s = app.getSource('test') 165 s = app.getSource('test')
155 route_metadata = {'path': route_path} 166 route_metadata = {'slug': route_path}
156 fac_path, metadata = s.findPagePath(route_metadata, MODE_PARSING) 167 fac_path, metadata = s.findPagePath(route_metadata, MODE_PARSING)
157 assert fac_path == expected_path 168 assert fac_path == expected_path
158 assert metadata == expected_metadata 169 assert metadata == expected_metadata
159 170