mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Removed Env.__getattr__(); Env no longer accepts callables for values (no more dynamic/lazy values)
This commit is contained in:
parent
5b637f6a18
commit
c070d390e9
@ -176,16 +176,6 @@ class Env(object):
|
|||||||
def __islocked__(self):
|
def __islocked__(self):
|
||||||
return self.__locked
|
return self.__locked
|
||||||
|
|
||||||
def __getattr__(self, name):
|
|
||||||
"""
|
|
||||||
Return the attribute named ``name``.
|
|
||||||
"""
|
|
||||||
if name in self.__d:
|
|
||||||
return self[name]
|
|
||||||
raise AttributeError('%s.%s' %
|
|
||||||
(self.__class__.__name__, name)
|
|
||||||
)
|
|
||||||
|
|
||||||
def __setattr__(self, name, value):
|
def __setattr__(self, name, value):
|
||||||
"""
|
"""
|
||||||
Set the attribute named ``name`` to ``value``.
|
Set the attribute named ``name`` to ``value``.
|
||||||
@ -204,12 +194,7 @@ class Env(object):
|
|||||||
"""
|
"""
|
||||||
Return the value corresponding to ``key``.
|
Return the value corresponding to ``key``.
|
||||||
"""
|
"""
|
||||||
if key not in self.__d:
|
return self.__d[key]
|
||||||
raise KeyError(key)
|
|
||||||
value = self.__d[key]
|
|
||||||
if callable(value):
|
|
||||||
return value()
|
|
||||||
return value
|
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
def __setitem__(self, key, value):
|
||||||
"""
|
"""
|
||||||
@ -224,17 +209,16 @@ class Env(object):
|
|||||||
raise AttributeError('cannot overwrite %s.%s with %r' %
|
raise AttributeError('cannot overwrite %s.%s with %r' %
|
||||||
(self.__class__.__name__, key, value)
|
(self.__class__.__name__, key, value)
|
||||||
)
|
)
|
||||||
if not callable(value):
|
if isinstance(value, basestring):
|
||||||
if isinstance(value, basestring):
|
value = str(value.strip())
|
||||||
value = str(value.strip())
|
if value.lower() == 'true':
|
||||||
if value.lower() == 'true':
|
value = True
|
||||||
value = True
|
elif value.lower() == 'false':
|
||||||
elif value.lower() == 'false':
|
value = False
|
||||||
value = False
|
elif value.isdigit():
|
||||||
elif value.isdigit():
|
value = int(value)
|
||||||
value = int(value)
|
assert type(value) in (str, int, bool)
|
||||||
assert type(value) in (str, int, bool)
|
object.__setattr__(self, key, value)
|
||||||
object.__setattr__(self, key, value)
|
|
||||||
self.__d[key] = value
|
self.__d[key] = value
|
||||||
|
|
||||||
def __contains__(self, key):
|
def __contains__(self, key):
|
||||||
|
@ -374,23 +374,16 @@ class test_Env(ClassChecker):
|
|||||||
e = raises(StandardError, o.__lock__)
|
e = raises(StandardError, o.__lock__)
|
||||||
assert str(e) == 'Env.__lock__() already called'
|
assert str(e) == 'Env.__lock__() already called'
|
||||||
|
|
||||||
def test_getattr(self):
|
def test_getitem(self):
|
||||||
"""
|
"""
|
||||||
Test the `ipalib.config.Env.__getattr__` method.
|
Test the `ipalib.config.Env.__getitem__` method.
|
||||||
|
|
||||||
Also tests the `ipalib.config.Env.__getitem__` method.
|
|
||||||
"""
|
"""
|
||||||
o = self.cls()
|
o = self.cls()
|
||||||
value = 'some value'
|
value = 'some value'
|
||||||
o.key = value
|
o.key = value
|
||||||
assert o.key is value
|
assert o.key is value
|
||||||
assert o['key'] is value
|
assert o['key'] is value
|
||||||
o.call = lambda: 'whatever'
|
|
||||||
assert o.call == 'whatever'
|
|
||||||
assert o['call'] == 'whatever'
|
|
||||||
for name in ('one', 'two'):
|
for name in ('one', 'two'):
|
||||||
e = raises(AttributeError, getattr, o, name)
|
|
||||||
assert str(e) == 'Env.%s' % name
|
|
||||||
e = raises(KeyError, getitem, o, name)
|
e = raises(KeyError, getitem, o, name)
|
||||||
assert str(e) == repr(name)
|
assert str(e) == repr(name)
|
||||||
|
|
||||||
@ -402,9 +395,9 @@ class test_Env(ClassChecker):
|
|||||||
"""
|
"""
|
||||||
items = [
|
items = [
|
||||||
('one', 1),
|
('one', 1),
|
||||||
('two', lambda: 2),
|
('two', 2),
|
||||||
('three', 3),
|
('three', 3),
|
||||||
('four', lambda: 4),
|
('four', 4),
|
||||||
]
|
]
|
||||||
for setvar in (setattr, setitem):
|
for setvar in (setattr, setitem):
|
||||||
o = self.cls()
|
o = self.cls()
|
||||||
@ -457,9 +450,9 @@ class test_Env(ClassChecker):
|
|||||||
o = self.cls()
|
o = self.cls()
|
||||||
items = [
|
items = [
|
||||||
('one', 1),
|
('one', 1),
|
||||||
('two', lambda: 2),
|
('two', 2),
|
||||||
('three', 3),
|
('three', 3),
|
||||||
('four', lambda: 4),
|
('four', 4),
|
||||||
]
|
]
|
||||||
for (key, value) in items:
|
for (key, value) in items:
|
||||||
assert key not in o
|
assert key not in o
|
||||||
|
Loading…
Reference in New Issue
Block a user