summaryrefslogtreecommitdiffstats
path: root/tests/test_ipalib/test_config.py
diff options
context:
space:
mode:
authorJason Gerard DeRose <jderose@redhat.com>2008-12-30 14:38:05 -0700
committerJason Gerard DeRose <jderose@redhat.com>2008-12-30 14:38:05 -0700
commitbc2395724708abc80c7c13c5474cefcfb6f3579c (patch)
treef821684d20f0e8700041414b9c1cd134d7119512 /tests/test_ipalib/test_config.py
parentecccc5c236a1a11f899e9776991dbc1e719b9490 (diff)
downloadfreeipa-bc2395724708abc80c7c13c5474cefcfb6f3579c.tar.gz
freeipa-bc2395724708abc80c7c13c5474cefcfb6f3579c.tar.xz
freeipa-bc2395724708abc80c7c13c5474cefcfb6f3579c.zip
Added unit test for Env._merge()
Diffstat (limited to 'tests/test_ipalib/test_config.py')
-rw-r--r--tests/test_ipalib/test_config.py140
1 files changed, 88 insertions, 52 deletions
diff --git a/tests/test_ipalib/test_config.py b/tests/test_ipalib/test_config.py
index 6737b0863..5daad037f 100644
--- a/tests/test_ipalib/test_config.py
+++ b/tests/test_ipalib/test_config.py
@@ -290,6 +290,94 @@ class test_Env(ClassChecker):
o[key] = 'the value'
assert list(o) == sorted(keys + default_keys)
+ def test_merge(self):
+ """
+ Test the `ipalib.config.Env._merge` method.
+ """
+ group1 = (
+ ('key1', 'value 1'),
+ ('key2', 'value 2'),
+ ('key3', 'value 3'),
+ ('key4', 'value 4'),
+ )
+ group2 = (
+ ('key0', 'Value 0'),
+ ('key2', 'Value 2'),
+ ('key4', 'Value 4'),
+ ('key5', 'Value 5'),
+ )
+ o = self.cls()
+ assert o._merge(**dict(group1)) == (4, 4)
+ assert len(o) == 4
+ assert list(o) == list(key for (key, value) in group1)
+ for (key, value) in group1:
+ assert getattr(o, key) is value
+ assert o[key] is value
+ assert o._merge(**dict(group2)) == (2, 4)
+ assert len(o) == 6
+ expected = dict(group2)
+ expected.update(dict(group1))
+ assert list(o) == sorted(expected)
+ assert expected['key2'] == 'value 2' # And not 'Value 2'
+ for (key, value) in expected.iteritems():
+ assert getattr(o, key) is value
+ assert o[key] is value
+ assert o._merge(**expected) == (0, 6)
+ assert len(o) == 6
+ assert list(o) == sorted(expected)
+
+ def test_merge_from_file(self):
+ """
+ Test the `ipalib.config.Env._merge_from_file` method.
+ """
+ tmp = TempDir()
+ assert callable(tmp.join)
+
+ # Test a config file that doesn't exist
+ no_exist = tmp.join('no_exist.conf')
+ assert not path.exists(no_exist)
+ o = self.cls()
+ o._bootstrap()
+ keys = tuple(o)
+ orig = dict((k, o[k]) for k in o)
+ assert o._merge_from_file(no_exist) is None
+ assert tuple(o) == keys
+
+ # Test an empty config file
+ empty = tmp.touch('empty.conf')
+ assert path.isfile(empty)
+ assert o._merge_from_file(empty) == (0, 0)
+ assert tuple(o) == keys
+
+ # Test a mal-formed config file:
+ bad = tmp.join('bad.conf')
+ open(bad, 'w').write(config_bad)
+ assert path.isfile(bad)
+ assert o._merge_from_file(bad) is None
+ assert tuple(o) == keys
+
+ # Test a valid config file that tries to override
+ override = tmp.join('override.conf')
+ open(override, 'w').write(config_override)
+ assert path.isfile(override)
+ assert o._merge_from_file(override) == (4, 6)
+ for (k, v) in orig.items():
+ assert o[k] is v
+ assert list(o) == sorted(keys + ('key0', 'key1', 'key2', 'key3'))
+ for i in xrange(4):
+ assert o['key%d' % i] == ('var%d' % i)
+ keys = tuple(o)
+
+ # Test a valid config file with type conversion
+ good = tmp.join('good.conf')
+ open(good, 'w').write(config_good)
+ assert path.isfile(good)
+ assert o._merge_from_file(good) == (3, 3)
+ assert list(o) == sorted(keys + ('yes', 'no', 'number'))
+ assert o.yes is True
+ assert o.no is False
+ assert o.number == 42
+
def new(self):
"""
Set os.environ['HOME'] to a tempdir.
@@ -489,55 +577,3 @@ class test_Env(ClassChecker):
o._finalize(**lastchance)
assert key in o
assert o[key] is value
-
- def test_merge_from_file(self):
- """
- Test the `ipalib.config.Env._merge_from_file` method.
- """
- tmp = TempDir()
- assert callable(tmp.join)
-
- # Test a config file that doesn't exist
- no_exist = tmp.join('no_exist.conf')
- assert not path.exists(no_exist)
- o = self.cls()
- o._bootstrap()
- keys = tuple(o)
- orig = dict((k, o[k]) for k in o)
- assert o._merge_from_file(no_exist) is None
- assert tuple(o) == keys
-
- # Test an empty config file
- empty = tmp.touch('empty.conf')
- assert path.isfile(empty)
- assert o._merge_from_file(empty) == (0, 0)
- assert tuple(o) == keys
-
- # Test a mal-formed config file:
- bad = tmp.join('bad.conf')
- open(bad, 'w').write(config_bad)
- assert path.isfile(bad)
- assert o._merge_from_file(bad) is None
- assert tuple(o) == keys
-
- # Test a valid config file that tries to override
- override = tmp.join('override.conf')
- open(override, 'w').write(config_override)
- assert path.isfile(override)
- assert o._merge_from_file(override) == (4, 6)
- for (k, v) in orig.items():
- assert o[k] is v
- assert list(o) == sorted(keys + ('key0', 'key1', 'key2', 'key3'))
- for i in xrange(4):
- assert o['key%d' % i] == ('var%d' % i)
- keys = tuple(o)
-
- # Test a valid config file with type conversion
- good = tmp.join('good.conf')
- open(good, 'w').write(config_good)
- assert path.isfile(good)
- assert o._merge_from_file(good) == (3, 3)
- assert list(o) == sorted(keys + ('yes', 'no', 'number'))
- assert o.yes is True
- assert o.no is False
- assert o.number == 42