Source code for logquacious.tests.test_cascading_config
from logquacious.cascading_config import CascadingConfig
[docs]def test_get_simple():
config = CascadingConfig({'size': 0})
assert config.get('size') == 0
[docs]def test_get_default():
config = CascadingConfig()
assert config.get('size', 10) == 10
[docs]def test_get_best():
cascade_map = {'font.size': 'size'}
config = CascadingConfig({'size': 0, 'font.size': 1}, cascade_map)
assert config.get('font.size') == 1
[docs]def test_get_cascade():
config = CascadingConfig({'size': 0}, {'font.size': 'size'})
assert config.get('font.size') == 0
[docs]def test_get_cascade_multi():
cascade_map = {'font.size': 'size', 'div.font.size': 'font.size'}
config = CascadingConfig({'size': 42}, cascade_map)
assert config.get('font.size') == 42
assert config.get('div.font.size') == 42
[docs]def test_cascade_path():
config = CascadingConfig({}, {'font.size': 'size'})
assert config.cascade_path('font.size') == 'font.size -> size'
[docs]def test_cascade_path_diamond_graph():
config = CascadingConfig({}, {
'class.font.size': ['div.font.size', 'font.size'],
'div.font.size': 'size',
'font.size': 'size',
})
assert (config.cascade_path('class.font.size') ==
'class.font.size -> div.font.size -> font.size -> size')
[docs]def test_get_circular_cascade():
config = CascadingConfig({'size': 42},
{'font.size': 'size', 'size': 'font.size'})
assert config.get('size') == 42
assert config.get('font.size') == 42
[docs]def test_list_circular_cascade():
config = CascadingConfig({}, {'font.size': 'size', 'size': 'font.size'})
assert config.cascade_path('size') == 'size -> font.size'
assert config.cascade_path('font.size') == 'font.size -> size'