summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-10-22 18:57:48 (GMT)
committerSteven Knight <knight@baldmt.com>2004-10-22 18:57:48 (GMT)
commitc7029022abb689e25457a3dc00aced8c1224c389 (patch)
tree941fe1971e51cc7abcb9b250a81fa7d53af55d24 /src/engine
parent4e9fae436fc971e3cbdb19d2f0517a636bb6648b (diff)
downloadSCons-c7029022abb689e25457a3dc00aced8c1224c389.zip
SCons-c7029022abb689e25457a3dc00aced8c1224c389.tar.gz
SCons-c7029022abb689e25457a3dc00aced8c1224c389.tar.bz2
Support default Options values of None. (Gary Oberbrunner)
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Options/OptionsTests.py16
-rw-r--r--src/engine/SCons/Options/__init__.py2
2 files changed, 16 insertions, 2 deletions
diff --git a/src/engine/SCons/Options/OptionsTests.py b/src/engine/SCons/Options/OptionsTests.py
index afcb4d3..4248dc3 100644
--- a/src/engine/SCons/Options/OptionsTests.py
+++ b/src/engine/SCons/Options/OptionsTests.py
@@ -244,7 +244,21 @@ class OptionsTestCase(unittest.TestCase):
env = Environment()
opts.Update(env, {})
assert not env.has_key('ANSWER')
-
+
+ # Test that a default value of None is all right.
+ test = TestSCons.TestSCons()
+ file = test.workpath('custom.py')
+ opts = SCons.Options.Options(file)
+
+ opts.Add('ANSWER',
+ "This is the answer",
+ None,
+ check)
+
+ env = Environment()
+ opts.Update(env, {})
+ assert not env.has_key('ANSWER')
+
def test_args(self):
"""Test updating an Environment with arguments overridden"""
diff --git a/src/engine/SCons/Options/__init__.py b/src/engine/SCons/Options/__init__.py
index 521171c..fdaee92 100644
--- a/src/engine/SCons/Options/__init__.py
+++ b/src/engine/SCons/Options/__init__.py
@@ -165,7 +165,7 @@ class Options:
# Finally validate the values:
for option in self.options:
- if option.validator:
+ if option.validator and values.has_key(option.key):
option.validator(option.key, env.subst('${%s}'%option.key), env)
def Save(self, filename, env):