Skip to content
Snippets Groups Projects
Commit 307149ba authored by Karl-Hermann Wieners's avatar Karl-Hermann Wieners
Browse files

Global: add basic unit tests for expconfig module

parent 2f3b6ad7
No related branches found
No related tags found
No related merge requests found
......@@ -1712,12 +1712,48 @@ class UnicodeTestCase(MkexpSimpleTestCase):
class ExpConfigTestCase(unittest.TestCase):
def setUp(self):
text = u"""
var1 = value1
var2 = $var1
[group]
var1 = value2
var3 = $var2
"""
self.config = expconfig.ConfigObj(text.split('\n'))
def test_default_interpolation_false(self):
config = expconfig.ConfigObj({
'var1': 'value1',
'var2': '$var1',
})
self.assertEqual(config['var2'], '$var1')
self.assertEqual(self.config['var2'], '$var1')
def test_template_interpolation(self):
default_interpolation = self.config.interpolation
self.config.interpolation = 'template'
self.assertEqual(self.config['var2'], 'value1')
self.assertEqual(self.config['group']['var3'], 'value2') # sic!
self.config.interpolation = default_interpolation
def test_odict(self):
odict = expconfig.odict(self.config)
self.assertEqual(self.config.dict(), odict)
def test_alias_by_self_merge(self):
config = expconfig.ConfigObj(self.config)
config['merged'] = {}
config['merged'].merge(config)
# Change in merged group also changes origin
config['merged']['group']['var1'] = 'changed'
self.assertEqual(config['group']['var1'], 'changed')
# Change in merged scalar does not affect origin
config['merged']['var1'] = 'changed'
self.assertEqual(config['var1'], 'value1')
def test_unalias_by_odict_merge(self):
config = expconfig.ConfigObj(self.config)
config['merged'] = {}
config['merged'].merge(expconfig.odict(config))
# Change in merged group does not affect origin
config['merged']['group']['var1'] = 'changed'
self.assertEqual(config['group']['var1'], 'value2')
if __name__ == '__main__':
unittest.main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment