summaryrefslogtreecommitdiff
path: root/SCons/Tool/MSCommon/MSVC/ConfigTests.py
diff options
context:
space:
mode:
Diffstat (limited to 'SCons/Tool/MSCommon/MSVC/ConfigTests.py')
-rw-r--r--SCons/Tool/MSCommon/MSVC/ConfigTests.py49
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()