diff options
Diffstat (limited to 'SCons/Tool/MSCommon/MSVC/ConfigTests.py')
-rw-r--r-- | SCons/Tool/MSCommon/MSVC/ConfigTests.py | 49 |
1 files changed, 39 insertions, 10 deletions
diff --git a/SCons/Tool/MSCommon/MSVC/ConfigTests.py b/SCons/Tool/MSCommon/MSVC/ConfigTests.py index 570861c7d..052893093 100644 --- a/SCons/Tool/MSCommon/MSVC/ConfigTests.py +++ b/SCons/Tool/MSCommon/MSVC/ConfigTests.py @@ -31,28 +31,57 @@ from SCons.Tool.MSCommon import vc from SCons.Tool.MSCommon.MSVC import Config from SCons.Tool.MSCommon.MSVC.Exceptions import MSVCInternalError -_VCVER = vc._VCVER -_MSVC_VERSION_INTERNAL = Config.MSVC_VERSION_INTERNAL +class Patch: + + class vc: + + class _VCVER: + + _VCVER = vc._VCVER + + @classmethod + def enable_copy(cls): + hook = list(cls._VCVER) + vc._VCVER = hook + return hook + + @classmethod + def restore(cls): + vc._VCVER = cls._VCVER + + class Config: + + class MSVC_VERSION_INTERNAL: + + MSVC_VERSION_INTERNAL = Config.MSVC_VERSION_INTERNAL + + @classmethod + def enable_copy(cls): + hook = dict(cls.MSVC_VERSION_INTERNAL) + Config.MSVC_VERSION_INTERNAL = hook + return hook + + @classmethod + def restore(cls): + Config.MSVC_VERSION_INTERNAL = cls.MSVC_VERSION_INTERNAL class ConfigTests(unittest.TestCase): def test_vcver(self): # all vc._VCVER in Config.MSVC_VERSION_SUFFIX - _ADD_VCVER = list(_VCVER) - _ADD_VCVER.append('99.9') - vc._VCVER = _ADD_VCVER + _VCVER = Patch.vc._VCVER.enable_copy() + _VCVER.append('99.9') with self.assertRaises(MSVCInternalError): Config.verify() - vc._VCVER = _VCVER + Patch.vc._VCVER.restore() def test_msvc_version_internal(self): # all vc._VCVER numstr in Config.MSVC_VERSION_INTERNAL - _DEL_MSVC_VERSION_INTERNAL = dict(_MSVC_VERSION_INTERNAL) - del _DEL_MSVC_VERSION_INTERNAL['14.3'] - Config.MSVC_VERSION_INTERNAL = _DEL_MSVC_VERSION_INTERNAL + MSVC_VERSION_INTERNAL = Patch.Config.MSVC_VERSION_INTERNAL.enable_copy() + del MSVC_VERSION_INTERNAL['14.3'] with self.assertRaises(MSVCInternalError): Config.verify() - Config.MSVC_VERSION_INTERNAL = _MSVC_VERSION_INTERNAL + Patch.Config.MSVC_VERSION_INTERNAL.restore() def test_verify(self): Config.verify() |