3
0
Fork 0

fix: only read each config file once on startup

This commit is contained in:
Lance Edgar 2024-12-18 12:33:17 -06:00
parent 87790bbb1a
commit 659d7e551e
2 changed files with 37 additions and 1 deletions

View file

@ -109,6 +109,39 @@ baz = B
self.assertIsNone(config.get('foo.bar'))
self.assertEqual(config.get('foo.baz'), 'B')
def test_files_only_read_once(self):
base = self.write_file('base.conf', """
[foo]
bar = 1
baz = A
""")
middle = self.write_file('middle.conf', """
[wutta.config]
require = %(here)s/base.conf
[foo]
baz = B
""")
top = self.write_file('top.conf', """
[wutta.config]
require = %(here)s/middle.conf
[foo]
baz = C
""")
config = conf.WuttaConfig(files=[top, middle, base])
self.assertEqual(len(config.files_read), 3)
# nb. files_read listing is in order of "priority" which is
# same the as order in which files were initially read
self.assertEqual(config.files_read[0], top)
self.assertEqual(config.files_read[1], middle)
self.assertEqual(config.files_read[2], base)
self.assertEqual(config.get('foo.bar'), '1')
self.assertEqual(config.get('foo.baz'), 'C')
def test_prioritized_files(self):
first = self.write_file('first.conf', """\
[foo]