mirror of
https://github.com/github/octodns.git
synced 2024-05-11 05:55:00 +00:00
Support for nested config env variable expansion
This commit is contained in:
@@ -1071,6 +1071,80 @@ class TestManager(TestCase):
|
||||
manager.sync()
|
||||
self.assertTrue('does not support `list_zones`' in str(ctx.exception))
|
||||
|
||||
def test_build_kwargs(self):
|
||||
manager = Manager(get_config_filename('simple.yaml'))
|
||||
|
||||
environ['OCTODNS_TEST_1'] = '42'
|
||||
environ['OCTODNS_TEST_2'] = 'string'
|
||||
|
||||
# empty
|
||||
self.assertEqual({}, manager._build_kwargs({}))
|
||||
|
||||
# simple, no expansion
|
||||
self.assertEqual(
|
||||
{'key': 'val', 'a': 42, 'x': None},
|
||||
manager._build_kwargs({'key': 'val', 'a': 42, 'x': None}),
|
||||
)
|
||||
|
||||
# top-level expansion
|
||||
self.assertEqual(
|
||||
{'secret': 42, 'another': 'string'},
|
||||
manager._build_kwargs(
|
||||
{
|
||||
'secret': 'env/OCTODNS_TEST_1',
|
||||
'another': 'env/OCTODNS_TEST_2',
|
||||
}
|
||||
),
|
||||
)
|
||||
|
||||
# 2nd-level expansion
|
||||
self.assertEqual(
|
||||
{
|
||||
'parent': {
|
||||
'secret': 42,
|
||||
'another': 'string',
|
||||
'key': 'value',
|
||||
'f': 43,
|
||||
}
|
||||
},
|
||||
manager._build_kwargs(
|
||||
{
|
||||
'parent': {
|
||||
'secret': 'env/OCTODNS_TEST_1',
|
||||
'another': 'env/OCTODNS_TEST_2',
|
||||
'key': 'value',
|
||||
'f': 43,
|
||||
}
|
||||
}
|
||||
),
|
||||
)
|
||||
|
||||
# 3rd-level expansion
|
||||
self.assertEqual(
|
||||
{
|
||||
'parent': {
|
||||
'child': {
|
||||
'secret': 42,
|
||||
'another': 'string',
|
||||
'key': 'value',
|
||||
'f': 43,
|
||||
}
|
||||
}
|
||||
},
|
||||
manager._build_kwargs(
|
||||
{
|
||||
'parent': {
|
||||
'child': {
|
||||
'secret': 'env/OCTODNS_TEST_1',
|
||||
'another': 'env/OCTODNS_TEST_2',
|
||||
'key': 'value',
|
||||
'f': 43,
|
||||
}
|
||||
}
|
||||
}
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
class TestMainThreadExecutor(TestCase):
|
||||
def test_success(self):
|
||||
|
||||
Reference in New Issue
Block a user