1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
"""Unit tests for milc.configuration.Configuration.
"""
import milc.configuration
def configuration_setup():
"""Setup a simple milc.configuration.Configuration object for testing.
"""
config = milc.configuration.Configuration()
config['a']['a'] = True
config['a']['a'] = True
config['a']['b'] = False
config['user']['d'] = 'arbitrary string'
config['user']['d'] = 'arbitrary string'
return config
def test_Configuration_dictionary():
"""Test Configuration dictionary access
"""
config = configuration_setup()
assert config['a']['a'] is True
assert config['a']['b'] is False
assert config['a']['c'] is None
def test_Configuration_dictionary_write():
"""Test that Configuration dictionary writes can be read as attributes.
"""
config = milc.configuration.Configuration()
config['a']['a'] = True
assert config.a.a is True
def test_Configuration_attribute():
"""Test Configuration attribute access
"""
config = configuration_setup()
assert config.a.a is True
assert config.a.b is False
assert config.a.c is None
def test_Configuration_attribute_write():
"""Test that Configuration attribute writes can be read as a dictionary method.
"""
config = milc.configuration.Configuration()
config.a.a = True
assert config['a']['a'] is True
def test_Configuration_iteration():
"""Make sure we can iterate over our stored volues.
"""
config = configuration_setup()
for section, section_dict in config.items():
if section == 'a':
for key, value in section_dict.items():
if key == 'a':
assert value is True
elif key == 'b':
assert value is False
else:
raise KeyError('Unexpected key found in configuration: ' + section + '.' + key)
elif section == 'user':
for key, value in section_dict.items():
if key == 'd':
assert value == 'arbitrary string'
else:
raise KeyError('Unexpected key found in configuration: ' + section + '.' + key)
else:
raise KeyError('Unexpected section found in configuration: ' + section)
def test_Configuration_parent_fallback():
"""Make sure that we properly pull in the parent value when the local value doesn't exist.
"""
config = configuration_setup()
assert config.a.d == 'arbitrary string'
|