mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Finished Env._finalize() and corresponding unit tests
This commit is contained in:
parent
ac4efac394
commit
759734864e
@ -168,7 +168,7 @@ class Env(object):
|
||||
and the location of the configuration file.
|
||||
"""
|
||||
self.__doing('_bootstrap')
|
||||
for (key, value) in overrides.items():
|
||||
for (key, value) in overrides.iteritems():
|
||||
self[key] = value
|
||||
if 'in_tree' not in self:
|
||||
if self.bin == self.site_packages and \
|
||||
@ -209,11 +209,11 @@ class Env(object):
|
||||
self.log = path.join(self.dot_ipa, 'log', name)
|
||||
else:
|
||||
self.log = path.join('/', 'var', 'log', 'ipa', name)
|
||||
for (key, value) in defaults.items():
|
||||
for (key, value) in defaults.iteritems():
|
||||
if key not in self:
|
||||
self[key] = value
|
||||
|
||||
def _finalize(self):
|
||||
def _finalize(self, **lastchance):
|
||||
"""
|
||||
Finalize and lock environment.
|
||||
|
||||
@ -222,11 +222,14 @@ class Env(object):
|
||||
"""
|
||||
self.__doing('_finalize')
|
||||
self.__do_if_not_done('_finalize_core')
|
||||
for (key, value) in lastchance.iteritems():
|
||||
if key not in self:
|
||||
self[key] = value
|
||||
self.__lock__()
|
||||
|
||||
def _merge_config(self, conf_file):
|
||||
"""
|
||||
Merge in values from ``conf_file`` into this `Env`.
|
||||
Merge values from ``conf_file`` into this `Env`.
|
||||
"""
|
||||
section = constants.CONFIG_SECTION
|
||||
if not path.isfile(conf_file):
|
||||
@ -258,6 +261,9 @@ class Env(object):
|
||||
)
|
||||
object.__setattr__(self, '_Env__locked', True)
|
||||
|
||||
def __islocked__(self):
|
||||
return self.__locked
|
||||
|
||||
def __getattr__(self, name):
|
||||
"""
|
||||
Return the attribute named ``name``.
|
||||
|
@ -170,8 +170,8 @@ key3 = var3
|
||||
config_good = """
|
||||
[global]
|
||||
|
||||
yes = TRUE
|
||||
no = False
|
||||
yes = tRUE
|
||||
no = fALse
|
||||
number = 42
|
||||
"""
|
||||
|
||||
@ -357,6 +357,25 @@ class test_Env(ClassChecker):
|
||||
e = raises(StandardError, o._finalize)
|
||||
assert str(e) == 'Env._finalize() already called'
|
||||
|
||||
# Check that _finalize() calls __lock__()
|
||||
(o, home) = self.new()
|
||||
assert o.__islocked__() is False
|
||||
o._finalize()
|
||||
assert o.__islocked__() is True
|
||||
e = raises(StandardError, o.__lock__)
|
||||
assert str(e) == 'Env.__lock__() already called'
|
||||
|
||||
# Check that **lastchance works
|
||||
(o, home) = self.finalize_core()
|
||||
key = 'just_one_more_key'
|
||||
value = 'with one more value'
|
||||
lastchance = {key: value}
|
||||
assert key not in o
|
||||
assert o._isdone('_finalize') is False
|
||||
o._finalize(**lastchance)
|
||||
assert key in o
|
||||
assert o[key] is value
|
||||
|
||||
def test_merge_config(self):
|
||||
"""
|
||||
Test the `ipalib.config.Env._merge_config` method.
|
||||
|
Loading…
Reference in New Issue
Block a user