From: stevenknight Date: Mon, 20 Feb 2006 20:40:23 +0000 (+0000) Subject: Fix SCons.Error => SCons.Errors typos. (Erick Tryzelaar) X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=7232b059f98aeca5c9081218610d9eda384ac544;p=scons.git Fix SCons.Error => SCons.Errors typos. (Erick Tryzelaar) git-svn-id: http://scons.tigris.org/svn/scons/trunk@1427 fdb21ef1-2011-0410-befe-b5e4ea1792b1 --- diff --git a/src/CHANGES.txt b/src/CHANGES.txt index a95891e7..2255a4fc 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -249,6 +249,11 @@ RELEASE 0.97 - XXX - Add use of $CPPDEFINES to $RCCOM (resource file compilation) on MinGW. + From Erick Tryzelaar: + + - Fix the error message when trying to report that a given option is + not gettable/settable from an SConscript file. + From Dobes Vandermeer: - Add support for SCC and other settings in Microsoft Visual diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py index 5b35e148..60747083 100644 --- a/src/engine/SCons/Script/Main.py +++ b/src/engine/SCons/Script/Main.py @@ -884,7 +884,7 @@ class SConscriptSettableOptions: def get(self, name): if not self.settable.has_key(name): - raise SCons.Error.UserError, "This option is not settable from a SConscript file: %s"%name + raise SCons.Errors.UserError, "This option is not settable from a SConscript file: %s"%name if hasattr(self.options, name) and getattr(self.options, name) is not None: return getattr(self.options, name) else: @@ -892,7 +892,7 @@ class SConscriptSettableOptions: def set(self, name, value): if not self.settable.has_key(name): - raise SCons.Error.UserError, "This option is not settable from a SConscript file: %s"%name + raise SCons.Errors.UserError, "This option is not settable from a SConscript file: %s"%name if name == 'num_jobs': try: diff --git a/src/engine/SCons/Script/MainTests.py b/src/engine/SCons/Script/MainTests.py new file mode 100644 index 00000000..aaf14826 --- /dev/null +++ b/src/engine/SCons/Script/MainTests.py @@ -0,0 +1,75 @@ +# +# __COPYRIGHT__ +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: + +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" + +import unittest +import SCons.Errors +import SCons.Script.Main + +# Unit tests of various classes within SCons.Script.Main.py. +# +# Most of the tests of this functionality are actually end-to-end scripts +# in the test/ hierarchy. +# +# This module is for specific bits of functionality that we can test +# more effectively here, instead of in an end-to-end test that would +# have to reach into SCons.Script.Main for various classes or other bits +# of private functionality. + +class SConscriptSettableOptionsTestCase(unittest.TestCase): + + def setUp(self): + class fake_option: + pass + option = fake_option() + self.ssoptions = SCons.Script.Main.SConscriptSettableOptions(option) + + def test_get(self): + """Test trying to get an option that is not SConscript-gettable""" + try: + self.ssoptions.get('memoizer') + except SCons.Errors.UserError: + pass + else: + raise ValueError, "expected a UserError trying to get('memoizer')" + + def test_set(self): + """Test trying to set an option that is not SConscript-settable""" + try: + self.ssoptions.set('count', 1) + except SCons.Errors.UserError: + pass + else: + raise ValueError, "expected a UserError trying to set('count', 1)" + + + +if __name__ == "__main__": + suite = unittest.TestSuite() + tclasses = [ SConscriptSettableOptionsTestCase, ] + for tclass in tclasses: + names = unittest.getTestCaseNames(tclass, 'test_') + suite.addTests(map(tclass, names)) + if not unittest.TextTestRunner().run(suite).wasSuccessful(): + sys.exit(1)