self.ans = SCons.Node.Alias.default_ans
self.lookup_list = SCons.Node.arg2nodes_lookups
self._dict = kw.copy()
- self._dict['__env__'] = self
def __cmp__(self, other):
- # Since an Environment now has an '__env__' construction variable
- # that refers to itself, delete that variable to avoid infinite
- # loops when comparing the underlying dictionaries in some Python
- # versions (*cough* 1.5.2 *cough*)...
- sdict = self._dict.copy()
- del sdict['__env__']
- odict = other._dict.copy()
- del odict['__env__']
- return cmp(sdict, odict)
+ return cmp(self._dict, other._dict)
def __delitem__(self, key):
"__cache_reset__"
return self._dict.has_key(key)
def items(self):
- "Emulates the items() method of dictionaries."""
- result = self._dict.items()
- result = filter(lambda t: t[0] != '__env__', result)
- return result
+ return self._dict.items()
def arg2nodes(self, args, node_factory=_null, lookup_list=_null):
if node_factory is _null:
"""
gvars = self.gvars()
lvars = self.lvars()
+ lvars['__env__'] = self
return SCons.Util.scons_subst(string, self, raw, target, source, gvars, lvars, conv)
def subst_kw(self, kw, raw=0, target=None, source=None):
the documentation for that function."""
gvars = self.gvars()
lvars = self.lvars()
+ lvars['__env__'] = self
return SCons.Util.scons_subst_list(string, self, raw, target, source, gvars, lvars, conv)
def subst_path(self, path):
self.lookup_list = SCons.Node.arg2nodes_lookups
self._dict = our_deepcopy(SCons.Defaults.ConstructionEnvironment)
- self._dict['__env__'] = self
self._dict['BUILDERS'] = BuilderDict(self._dict['BUILDERS'], self)
if platform is None:
"""
clone = copy.copy(self)
clone._dict = our_deepcopy(self._dict)
- clone['__env__'] = clone
try:
cbd = clone._dict['BUILDERS']
clone._dict['BUILDERS'] = BuilderDict(cbd, clone)
if __debug__: logInstanceCreation(self, 'OverrideEnvironment')
self.__dict__['__subject'] = subject
self.__dict__['overrides'] = overrides
- self.__dict__['overrides']['__env__'] = self
# Methods that make this class act like a proxy.
def __getattr__(self, name):
"""Test initializing a SubstitutionEnvironment
"""
env = SubstitutionEnvironment()
- assert env['__env__'] is env, env['__env__']
+ assert not env.has_key('__env__')
def test___cmp__(self):
"""Test comparing SubstitutionEnvironments
"""Test the base class gvars() method"""
env = SubstitutionEnvironment()
gvars = env.gvars()
- assert gvars == {'__env__' : env}, gvars
+ assert gvars == {}, gvars
def test_lvars(self):
"""Test the base class lvars() method"""
assert env2['ONE'] == "won", env2['ONE']
assert env['ONE'] == 1, env['ONE']
- assert env['__env__'] is env, env['__env__']
- assert env2['__env__'] is env2, env2['__env__']
-
class BaseTestCase(unittest.TestCase):
env2 = Environment(XXX = 'x', YYY = 'y')
assert env1 == env2, diff_env(env1, env2)
- assert env1['__env__'] is env1, env1['__env__']
- assert env2['__env__'] is env2, env2['__env__']
+ assert not env1.has_key('__env__')
+ assert not env2.has_key('__env__')
def test_get(self):
"""Test the get() method."""
assert env3.Dictionary('ZZZ') == 'z3'
assert env1 == env1copy
- assert env1['__env__'] is env1, env1['__env__']
- assert env2['__env__'] is env2, env2['__env__']
- assert env3['__env__'] is env3, env3['__env__']
-
# Ensure that lists and dictionaries are
# deep copied, but not instances.
class TestA: