diff options
author | Jason Gerard DeRose <jderose@redhat.com> | 2008-10-24 15:35:58 -0600 |
---|---|---|
committer | Jason Gerard DeRose <jderose@redhat.com> | 2008-10-24 15:35:58 -0600 |
commit | 2a41db33c6d9f6efa826e16d91eba76defe899d2 (patch) | |
tree | 6beb3d8936b23b6a0c60189631aa5082b3710e8e | |
parent | 39dfffd280bb9df257a57c31ca185bc88dfc4bd5 (diff) | |
download | freeipa-2a41db33c6d9f6efa826e16d91eba76defe899d2.tar.gz freeipa-2a41db33c6d9f6efa826e16d91eba76defe899d2.tar.xz freeipa-2a41db33c6d9f6efa826e16d91eba76defe899d2.zip |
Env._bootstrap() now raises StandardError if called more than once
-rw-r--r-- | ipalib/config.py | 9 | ||||
-rw-r--r-- | tests/test_ipalib/test_config.py | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/ipalib/config.py b/ipalib/config.py index 86d8f1da..dd00d713 100644 --- a/ipalib/config.py +++ b/ipalib/config.py @@ -137,6 +137,7 @@ class Env(object): def __init__(self): object.__setattr__(self, '_Env__d', {}) + object.__setattr__(self, '_Env__done', set()) self.ipalib = path.dirname(path.abspath(__file__)) self.site_packages = path.dirname(self.ipalib) self.script = path.abspath(sys.argv[0]) @@ -144,6 +145,13 @@ class Env(object): self.home = path.abspath(os.environ['HOME']) self.dot_ipa = path.join(self.home, '.ipa') + def __do(self, name): + if name in self.__done: + raise StandardError( + '%s.%s() already called' % (self.__class__.__name__, name) + ) + self.__done.add(name) + def _bootstrap(self, **overrides): """ Initialize basic environment. @@ -154,6 +162,7 @@ class Env(object): This method should be called before any plugins are loaded. """ + self.__do('_bootstrap') for (key, value) in overrides.items(): self[key] = value if 'in_tree' not in self: diff --git a/tests/test_ipalib/test_config.py b/tests/test_ipalib/test_config.py index 39dc7906..67eedd14 100644 --- a/tests/test_ipalib/test_config.py +++ b/tests/test_ipalib/test_config.py @@ -197,6 +197,8 @@ class test_Env(ClassChecker): def bootstrap(self, **overrides): o = self.cls() o._bootstrap(**overrides) + e = raises(StandardError, o._bootstrap) + assert str(e) == 'Env._bootstrap() already called' return o def test_bootstrap(self): |