Mercurial > piecrust2
annotate tests/test_appconfig.py @ 951:c50ff76e0596
admin: Fix old API calls and bugs when editing pages.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 05 Oct 2017 00:28:34 -0700 |
parents | fd694f1297c7 |
children | 72f17534d58e |
rev | line source |
---|---|
683
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
1 import yaml |
584
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
2 from piecrust.appconfig import PieCrustConfiguration |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
3 from .mockutil import mock_fs, mock_fs_scope |
584
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
4 |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
5 |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
6 def test_config_default(): |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
7 values = {} |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
8 config = PieCrustConfiguration(values=values) |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
9 assert config.get('site/root') == '/' |
683
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
10 assert len(config.get('site/sources')) == 3 # pages, posts, theme_pages |
584
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
11 |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
12 |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
13 def test_config_site_override_title(): |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
14 values = {'site': {'title': "Whatever"}} |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
15 config = PieCrustConfiguration(values=values) |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
16 assert config.get('site/root') == '/' |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
17 assert config.get('site/title') == 'Whatever' |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
18 |
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
19 |
684
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
20 def test_config_override_default_model_settings(): |
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
21 config = {'site': { |
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
22 'default_page_layout': 'foo', |
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
23 'default_post_layout': 'bar', |
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
24 'posts_per_page': 2}} |
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
25 fs = mock_fs().withConfig(config) |
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
26 with mock_fs_scope(fs): |
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
27 app = fs.getApp() |
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
28 assert app.config.get('site/default_page_layout') == 'foo' |
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
29 assert app.config.get('site/default_post_layout') == 'bar' |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
30 assert app.config.get('site/sources/pages/default_layout') == 'foo' |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
31 assert app.config.get('site/sources/pages/items_per_page') == 5 |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
32 assert app.config.get( |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
33 'site/sources/theme_pages/default_layout') == 'default' |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
34 assert app.config.get('site/sources/theme_pages/items_per_page') == 5 |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
35 assert app.config.get('site/sources/posts/default_layout') == 'bar' |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
36 assert app.config.get('site/sources/posts/items_per_page') == 2 |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
37 |
684
15b5181b2e42
tests: Add another app config test.
Ludovic Chabant <ludovic@chabant.com>
parents:
683
diff
changeset
|
38 |
584
9ccc933ac2c7
internal: Refactor the app configuration class.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff
changeset
|
39 def test_config_site_add_source(): |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
40 config = {'site': { |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
41 'sources': {'notes': {}}, |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
42 'routes': [{'url': '/notes/%path:slug%', 'source': 'notes'}] |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
43 }} |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
44 fs = mock_fs().withConfig(config) |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
45 with mock_fs_scope(fs): |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
46 app = fs.getApp() |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
47 # The order of routes is important. Sources, not so much. |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
48 assert (list( |
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
49 map( |
711
ab5c6a8ae90a
bake: Replace hard-coded taxonomy support with "generator" system.
Ludovic Chabant <ludovic@chabant.com>
parents:
684
diff
changeset
|
50 lambda v: v.get('generator') or v['source'], |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
51 app.config.get('site/routes'))) == |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
52 [ |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
53 'notes', 'posts', 'posts_archives', 'posts_tags', |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
54 'posts_categories', 'pages', 'theme_pages']) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
55 assert set(app.config.get('site/sources').keys()) == set([ |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
56 'theme_pages', 'pages', 'posts', 'notes']) |
683
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
57 |
681
894d286b348f
internal: Refactor config loading some more.
Ludovic Chabant <ludovic@chabant.com>
parents:
675
diff
changeset
|
58 |
683
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
59 def test_config_site_add_source_in_both_site_and_theme(): |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
60 theme_config = {'site': { |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
61 'sources': {'theme_notes': {}}, |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
62 'routes': [{'url': '/theme_notes/%path:slug%', 'source': 'theme_notes'}] |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
63 }} |
683
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
64 config = {'site': { |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
65 'sources': {'notes': {}}, |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
66 'routes': [{'url': '/notes/%path:slug%', 'source': 'notes'}] |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
67 }} |
683
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
68 fs = (mock_fs() |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
69 .withConfig(config) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
70 .withFile('kitchen/theme/theme_config.yml', yaml.dump(theme_config))) |
683
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
71 with mock_fs_scope(fs): |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
72 app = fs.getApp() |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
73 # The order of routes is important. Sources, not so much. |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
74 # `posts` shows up 3 times in routes (posts, tags, categories) |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
75 assert (list( |
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
76 map( |
711
ab5c6a8ae90a
bake: Replace hard-coded taxonomy support with "generator" system.
Ludovic Chabant <ludovic@chabant.com>
parents:
684
diff
changeset
|
77 lambda v: v.get('generator') or v['source'], |
683
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
78 app.config.get('site/routes'))) == |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
79 [ |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
80 'notes', 'posts', 'posts_archives', 'posts_tags', |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
81 'posts_categories', 'pages', 'theme_notes', |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
82 'theme_pages']) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
83 assert set(app.config.get('site/sources').keys()) == set([ |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
84 'theme_pages', 'theme_notes', 'pages', 'posts', 'notes']) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
85 |
683
ec384174b8b2
internal: More work/fixes on how default/theme/user configs are merged.
Ludovic Chabant <ludovic@chabant.com>
parents:
681
diff
changeset
|
86 |
805
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
87 def test_multiple_blogs(): |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
88 config = {'site': {'blogs': ['aaa', 'bbb']}} |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
89 fs = mock_fs().withConfig(config) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
90 with mock_fs_scope(fs): |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
91 app = fs.getApp() |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
92 assert app.config.get('site/blogs') == ['aaa', 'bbb'] |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
93 assert (list( |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
94 map( |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
95 lambda v: v.get('generator') or v['source'], |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
96 app.config.get('site/routes'))) == |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
97 [ |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
98 'aaa', 'aaa_archives', 'aaa_tags', 'aaa_categories', |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
99 'bbb', 'bbb_archives', 'bbb_tags', 'bbb_categories', |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
100 'pages', 'theme_pages']) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
101 assert set(app.config.get('site/sources').keys()) == set([ |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
102 'aaa', 'bbb', 'pages', 'theme_pages']) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
103 |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
104 |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
105 def test_custom_list_setting(): |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
106 config = {'blah': ['foo', 'bar']} |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
107 fs = mock_fs().withConfig(config) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
108 with mock_fs_scope(fs): |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
109 app = fs.getApp() |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
110 assert app.config.get('blah') == ['foo', 'bar'] |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
111 |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
112 |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
113 def test_custom_list_setting_in_site_section(): |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
114 config = {'site': {'blah': ['foo', 'bar']}} |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
115 fs = mock_fs().withConfig(config) |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
116 with mock_fs_scope(fs): |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
117 app = fs.getApp() |
fd694f1297c7
config: Cleanup config loading code. Add support for a `local.yml` config.
Ludovic Chabant <ludovic@chabant.com>
parents:
711
diff
changeset
|
118 assert app.config.get('site/blah') == ['foo', 'bar'] |