From 16c0be7f275d8270b1898b42c8e254f44cfea728 Mon Sep 17 00:00:00 2001
From: Hao Wu <echowuhao@gmail.com>
Date: Thu, 12 Jul 2018 14:08:08 +0800
Subject: Replace usage of unittest.TestSuite with unittest.main()

---
 src/engine/SCons/ActionTests.py                    |  1 -
 src/engine/SCons/CacheDirTests.py                  | 12 +-----------
 src/engine/SCons/DefaultsTests.py                  |  9 +--------
 src/engine/SCons/ErrorsTests.py                    |  5 +----
 src/engine/SCons/ExecutorTests.py                  |  9 +--------
 src/engine/SCons/MemoizeTests.py                   | 12 +-----------
 src/engine/SCons/Node/AliasTests.py                | 13 +------------
 src/engine/SCons/Node/NodeTests.py                 | 12 +-----------
 src/engine/SCons/Node/PythonTests.py               | 13 +------------
 src/engine/SCons/Platform/PlatformTests.py         | 13 +------------
 src/engine/SCons/SConfTests.py                     |  2 --
 src/engine/SCons/Scanner/DTests.py                 | 10 +---------
 src/engine/SCons/Scanner/DirTests.py               |  9 +--------
 src/engine/SCons/Scanner/LaTeXTests.py             | 11 +----------
 src/engine/SCons/Scanner/ProgTests.py              |  3 +--
 src/engine/SCons/Scanner/RCTests.py                |  3 +--
 src/engine/SCons/Script/MainTests.py               |  9 +--------
 src/engine/SCons/SubstTests.py                     | 18 +-----------------
 src/engine/SCons/TaskmasterTests.py                |  4 +---
 src/engine/SCons/Tool/JavaCommonTests.py           |  9 +--------
 src/engine/SCons/Tool/javacTests.py                |  9 +++------
 src/engine/SCons/Tool/wixTests.py                  |  4 +---
 src/engine/SCons/UtilTests.py                      |  1 -
 src/engine/SCons/Variables/BoolVariableTests.py    |  5 +----
 src/engine/SCons/Variables/EnumVariableTests.py    |  5 +----
 src/engine/SCons/Variables/ListVariableTests.py    |  5 +----
 src/engine/SCons/Variables/PackageVariableTests.py |  5 +----
 src/engine/SCons/Variables/PathVariableTests.py    |  5 +----
 src/engine/SCons/Variables/VariablesTests.py       | 13 ++++---------
 src/engine/SCons/WarningsTests.py                  |  5 +----
 30 files changed, 32 insertions(+), 202 deletions(-)

diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py
index 2959ede..ed88f72 100644
--- a/src/engine/SCons/ActionTests.py
+++ b/src/engine/SCons/ActionTests.py
@@ -50,7 +50,6 @@ import SCons.Environment
 import SCons.Errors
 
 import TestCmd
-import TestUnit
 
 # Initial setup of the common environment for all tests,
 # a temporary working directory containing a
diff --git a/src/engine/SCons/CacheDirTests.py b/src/engine/SCons/CacheDirTests.py
index 494db98..ef87746 100644
--- a/src/engine/SCons/CacheDirTests.py
+++ b/src/engine/SCons/CacheDirTests.py
@@ -29,7 +29,6 @@ import sys
 import unittest
 
 from TestCmd import TestCmd
-import TestUnit
 
 import SCons.CacheDir
 
@@ -287,16 +286,7 @@ class FileTestCase(BaseTestCase):
             SCons.CacheDir.CacheRetrieveSilent = save_CacheRetrieveSilent
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [
-        CacheDirTestCase,
-        FileTestCase,
-    ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
-
+    unittest.main()
 # Local Variables:
 # tab-width:4
 # indent-tabs-mode:nil
diff --git a/src/engine/SCons/DefaultsTests.py b/src/engine/SCons/DefaultsTests.py
index 141243b..e04d1eb 100644
--- a/src/engine/SCons/DefaultsTests.py
+++ b/src/engine/SCons/DefaultsTests.py
@@ -32,7 +32,6 @@ import unittest
 from collections import UserDict
 
 import TestCmd
-import TestUnit
 
 import SCons.Errors
 
@@ -77,13 +76,7 @@ class DefaultsTestCase(unittest.TestCase):
         
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [ DefaultsTestCase,
-               ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/ErrorsTests.py b/src/engine/SCons/ErrorsTests.py
index 7819580..5c16160 100644
--- a/src/engine/SCons/ErrorsTests.py
+++ b/src/engine/SCons/ErrorsTests.py
@@ -28,8 +28,6 @@ import os
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Errors
 
 
@@ -126,8 +124,7 @@ class ErrorsTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(ErrorsTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/ExecutorTests.py b/src/engine/SCons/ExecutorTests.py
index eeab3ad..59ca5c7 100644
--- a/src/engine/SCons/ExecutorTests.py
+++ b/src/engine/SCons/ExecutorTests.py
@@ -26,8 +26,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Executor
 
 
@@ -483,12 +481,7 @@ class ExecutorTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [ ExecutorTestCase ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/MemoizeTests.py b/src/engine/SCons/MemoizeTests.py
index 3ce9a11..726f656 100644
--- a/src/engine/SCons/MemoizeTests.py
+++ b/src/engine/SCons/MemoizeTests.py
@@ -26,8 +26,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Memoize
 
 # Enable memoization counting
@@ -165,15 +163,7 @@ class CountValueTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [
-        CountDictTestCase,
-        CountValueTestCase,
-    ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Node/AliasTests.py b/src/engine/SCons/Node/AliasTests.py
index 8e31875..5d9c799 100644
--- a/src/engine/SCons/Node/AliasTests.py
+++ b/src/engine/SCons/Node/AliasTests.py
@@ -26,8 +26,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Errors
 import SCons.Node.Alias
 
@@ -113,16 +111,7 @@ class AliasBuildInfoTestCase(unittest.TestCase):
         bi = SCons.Node.Alias.AliasBuildInfo()
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [
-        AliasTestCase,
-        AliasBuildInfoTestCase,
-        AliasNodeInfoTestCase,
-    ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Node/NodeTests.py b/src/engine/SCons/Node/NodeTests.py
index 3802f8c..ca6c883 100644
--- a/src/engine/SCons/Node/NodeTests.py
+++ b/src/engine/SCons/Node/NodeTests.py
@@ -30,8 +30,6 @@ import re
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Errors
 import SCons.Node
 import SCons.Util
@@ -1349,15 +1347,7 @@ class NodeListTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [ BuildInfoBaseTestCase,
-                 NodeInfoBaseTestCase,
-                 NodeTestCase,
-                 NodeListTestCase ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Node/PythonTests.py b/src/engine/SCons/Node/PythonTests.py
index 346542b..7ef9e52 100644
--- a/src/engine/SCons/Node/PythonTests.py
+++ b/src/engine/SCons/Node/PythonTests.py
@@ -26,8 +26,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Errors
 import SCons.Node.Python
 
@@ -113,16 +111,7 @@ class ValueBuildInfoTestCase(unittest.TestCase):
         bi = SCons.Node.Python.ValueBuildInfo()
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [
-        ValueTestCase,
-        ValueBuildInfoTestCase,
-        ValueNodeInfoTestCase,
-    ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Platform/PlatformTests.py b/src/engine/SCons/Platform/PlatformTests.py
index 3432e94..6f720ec 100644
--- a/src/engine/SCons/Platform/PlatformTests.py
+++ b/src/engine/SCons/Platform/PlatformTests.py
@@ -28,8 +28,6 @@ import SCons.compat
 import collections
 import unittest
 
-import TestUnit
-
 import SCons.Errors
 import SCons.Platform
 import SCons.Environment
@@ -204,17 +202,8 @@ class PlatformEscapeTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    
-    tclasses = [ PlatformTestCase,
-                 TempFileMungeTestCase,
-                 PlatformEscapeTestCase,
-                ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
+    unittest.main()
     
-    TestUnit.run(suite)
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/SConfTests.py b/src/engine/SCons/SConfTests.py
index dd5b8b9..cf8a7fb 100644
--- a/src/engine/SCons/SConfTests.py
+++ b/src/engine/SCons/SConfTests.py
@@ -33,8 +33,6 @@ from types import *
 import unittest
 
 import TestCmd
-import TestUnit
-
 
 sys.stdout = io.StringIO()
 
diff --git a/src/engine/SCons/Scanner/DTests.py b/src/engine/SCons/Scanner/DTests.py
index 51e527a..ad6bd5a 100644
--- a/src/engine/SCons/Scanner/DTests.py
+++ b/src/engine/SCons/Scanner/DTests.py
@@ -26,7 +26,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import unittest
 
 import TestCmd
-import TestUnit
 
 import SCons.Scanner.D
 
@@ -266,14 +265,7 @@ class DScannerTestCase(unittest.TestCase):
         self.helper('multiline.d', ['A.d'])
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [
-        DScannerTestCase,
-    ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Scanner/DirTests.py b/src/engine/SCons/Scanner/DirTests.py
index 9701921..c433663 100644
--- a/src/engine/SCons/Scanner/DirTests.py
+++ b/src/engine/SCons/Scanner/DirTests.py
@@ -28,7 +28,6 @@ import sys
 import unittest
 
 import TestCmd
-import TestUnit
 
 import SCons.Node.FS
 import SCons.Scanner.Dir
@@ -121,14 +120,8 @@ class DirEntryScannerTestCase(DirScannerTestBase):
         sss = list(map(str, deps))
         assert sss == [], sss
 
-def suite():
-    suite = unittest.TestSuite()
-    suite.addTest(DirScannerTestCase())
-    suite.addTest(DirEntryScannerTestCase())
-    return suite
-
 if __name__ == "__main__":
-    TestUnit.run(suite())
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Scanner/LaTeXTests.py b/src/engine/SCons/Scanner/LaTeXTests.py
index 213e89e..5913124 100644
--- a/src/engine/SCons/Scanner/LaTeXTests.py
+++ b/src/engine/SCons/Scanner/LaTeXTests.py
@@ -31,7 +31,6 @@ import sys
 import unittest
 
 import TestCmd
-import TestUnit
 
 import SCons.Node.FS
 import SCons.Scanner.LaTeX
@@ -156,16 +155,8 @@ class LaTeXScannerTestCase3(unittest.TestCase):
          files = ['inc5.xyz', 'subdir/inc4.eps']
          deps_match(self, deps, files)
 
-
-def suite():
-    suite = unittest.TestSuite()
-    suite.addTest(LaTeXScannerTestCase1())
-    suite.addTest(LaTeXScannerTestCase2())
-    suite.addTest(LaTeXScannerTestCase3())
-    return suite
-
 if __name__ == "__main__":
-    TestUnit.run(suite())
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Scanner/ProgTests.py b/src/engine/SCons/Scanner/ProgTests.py
index e7c791c..45fdcb2 100644
--- a/src/engine/SCons/Scanner/ProgTests.py
+++ b/src/engine/SCons/Scanner/ProgTests.py
@@ -28,7 +28,6 @@ import sys
 import unittest
 
 import TestCmd
-import TestUnit
 
 import SCons.Node.FS
 import SCons.Scanner.Prog
@@ -274,7 +273,7 @@ def suite():
     return suite
 
 if __name__ == "__main__":
-    TestUnit.run(suite())
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Scanner/RCTests.py b/src/engine/SCons/Scanner/RCTests.py
index 2864026..d4f53ca 100644
--- a/src/engine/SCons/Scanner/RCTests.py
+++ b/src/engine/SCons/Scanner/RCTests.py
@@ -29,7 +29,6 @@ import collections
 import os
 
 import TestCmd
-import TestUnit
 
 import SCons.Scanner.RC
 import SCons.Node.FS
@@ -167,7 +166,7 @@ def suite():
     return suite
 
 if __name__ == "__main__":
-    TestUnit.run(suite())
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Script/MainTests.py b/src/engine/SCons/Script/MainTests.py
index fd6aaf4..aa6bfac 100644
--- a/src/engine/SCons/Script/MainTests.py
+++ b/src/engine/SCons/Script/MainTests.py
@@ -25,8 +25,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
 import unittest
 
-import TestUnit
-
 import SCons.Errors
 import SCons.Script.Main
 
@@ -41,12 +39,7 @@ import SCons.Script.Main
 # of private functionality.
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = []
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/SubstTests.py b/src/engine/SCons/SubstTests.py
index fcd77df..a111e4b 100644
--- a/src/engine/SCons/SubstTests.py
+++ b/src/engine/SCons/SubstTests.py
@@ -32,8 +32,6 @@ import unittest
 
 from collections import UserDict
 
-import TestUnit
-
 import SCons.Errors
 
 from SCons.Subst import *
@@ -1243,21 +1241,7 @@ class subst_dict_TestCase(unittest.TestCase):
         assert SOURCES == ['s3', 'v-rstr-s4', 'v-s5'], SOURCES
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [
-        CLVar_TestCase,
-        LiteralTestCase,
-        SpecialAttrWrapperTestCase,
-        quote_spaces_TestCase,
-        scons_subst_TestCase,
-        scons_subst_list_TestCase,
-        scons_subst_once_TestCase,
-        subst_dict_TestCase,
-    ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/TaskmasterTests.py b/src/engine/SCons/TaskmasterTests.py
index d237d60..42ed00e 100644
--- a/src/engine/SCons/TaskmasterTests.py
+++ b/src/engine/SCons/TaskmasterTests.py
@@ -30,7 +30,6 @@ import copy
 import sys
 import unittest
 
-import TestUnit
 
 import SCons.Taskmaster
 import SCons.Errors
@@ -1239,8 +1238,7 @@ Taskmaster: No candidate anymore.
 
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(TaskmasterTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Tool/JavaCommonTests.py b/src/engine/SCons/Tool/JavaCommonTests.py
index 902030d..cda785f 100644
--- a/src/engine/SCons/Tool/JavaCommonTests.py
+++ b/src/engine/SCons/Tool/JavaCommonTests.py
@@ -27,8 +27,6 @@ import os.path
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Scanner.IDL
 import SCons.Tool.JavaCommon
 
@@ -568,12 +566,7 @@ public class Foo
 
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [ parse_javaTestCase ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Tool/javacTests.py b/src/engine/SCons/Tool/javacTests.py
index bf75d8a..96d41b2 100644
--- a/src/engine/SCons/Tool/javacTests.py
+++ b/src/engine/SCons/Tool/javacTests.py
@@ -24,8 +24,6 @@
 import os
 import unittest
 
-import TestUnit
-
 import SCons.Tool.javac
 
 class DummyNode(object):
@@ -40,14 +38,14 @@ class pathoptTestCase(unittest.TestCase):
         popt = SCons.Tool.javac.pathopt('-foopath', 'FOOPATH')
         env = {'FOOPATH': path}
         actual = popt(None, None, env, None)
-        self.assertEquals(expect, actual)
+        self.assertEqual(expect, actual)
 
     def assert_pathopt_default(self, expect, path, default):
         popt = SCons.Tool.javac.pathopt('-foopath', 'FOOPATH', default='DPATH')
         env = {'FOOPATH': path,
                'DPATH': default}
         actual = popt(None, None, env, None)
-        self.assertEquals(expect, actual)
+        self.assertEqual(expect, actual)
 
     def test_unset(self):
         self.assert_pathopt([], None)
@@ -101,5 +99,4 @@ class pathoptTestCase(unittest.TestCase):
             '')
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(pathoptTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
diff --git a/src/engine/SCons/Tool/wixTests.py b/src/engine/SCons/Tool/wixTests.py
index c683e98..6039115 100644
--- a/src/engine/SCons/Tool/wixTests.py
+++ b/src/engine/SCons/Tool/wixTests.py
@@ -33,7 +33,6 @@ from SCons.Tool.wix import *
 from SCons.Environment import Environment
 
 import TestCmd
-import TestUnit
 
 
 # create fake candle and light, so the tool's exists() method will succeed
@@ -53,8 +52,7 @@ class WixTestCase(unittest.TestCase):
         assert env.subst('$WIXSRCSUF') == '.wxs'
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(WixTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/UtilTests.py b/src/engine/SCons/UtilTests.py
index 38b4da9..842d4d8 100644
--- a/src/engine/SCons/UtilTests.py
+++ b/src/engine/SCons/UtilTests.py
@@ -32,7 +32,6 @@ import unittest
 from collections import UserDict, UserList, UserString
 
 import TestCmd
-import TestUnit
 
 import SCons.Errors
 
diff --git a/src/engine/SCons/Variables/BoolVariableTests.py b/src/engine/SCons/Variables/BoolVariableTests.py
index 7110f6f..3184407 100644
--- a/src/engine/SCons/Variables/BoolVariableTests.py
+++ b/src/engine/SCons/Variables/BoolVariableTests.py
@@ -26,8 +26,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Errors
 import SCons.Variables
 
@@ -118,8 +116,7 @@ class BoolVariableTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(BoolVariableTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Variables/EnumVariableTests.py b/src/engine/SCons/Variables/EnumVariableTests.py
index 931dfe2..4ecb8bd 100644
--- a/src/engine/SCons/Variables/EnumVariableTests.py
+++ b/src/engine/SCons/Variables/EnumVariableTests.py
@@ -26,8 +26,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Errors
 import SCons.Variables
 
@@ -195,8 +193,7 @@ class EnumVariableTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(EnumVariableTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Variables/ListVariableTests.py b/src/engine/SCons/Variables/ListVariableTests.py
index adfd353..ef4832c 100644
--- a/src/engine/SCons/Variables/ListVariableTests.py
+++ b/src/engine/SCons/Variables/ListVariableTests.py
@@ -27,8 +27,6 @@ import copy
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Errors
 import SCons.Variables
 
@@ -125,8 +123,7 @@ class ListVariableTestCase(unittest.TestCase):
         n = l.__class__(copy.copy(l))
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(ListVariableTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Variables/PackageVariableTests.py b/src/engine/SCons/Variables/PackageVariableTests.py
index 3aa411d..cda3a4a 100644
--- a/src/engine/SCons/Variables/PackageVariableTests.py
+++ b/src/engine/SCons/Variables/PackageVariableTests.py
@@ -30,8 +30,6 @@ import SCons.Errors
 import SCons.Variables
 
 import TestCmd
-import TestUnit
-
 
 class PackageVariableTestCase(unittest.TestCase):
     def test_PackageVariable(self):
@@ -115,8 +113,7 @@ class PackageVariableTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(PackageVariableTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Variables/PathVariableTests.py b/src/engine/SCons/Variables/PathVariableTests.py
index 3d9d25c..48ad0e0 100644
--- a/src/engine/SCons/Variables/PathVariableTests.py
+++ b/src/engine/SCons/Variables/PathVariableTests.py
@@ -31,8 +31,6 @@ import SCons.Errors
 import SCons.Variables
 
 import TestCmd
-import TestUnit
-
 
 class PathVariableTestCase(unittest.TestCase):
     def test_PathVariable(self):
@@ -228,8 +226,7 @@ class PathVariableTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(PathVariableTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/Variables/VariablesTests.py b/src/engine/SCons/Variables/VariablesTests.py
index 175a14b..43c785f 100644
--- a/src/engine/SCons/Variables/VariablesTests.py
+++ b/src/engine/SCons/Variables/VariablesTests.py
@@ -27,7 +27,6 @@ import sys
 import unittest
 
 import TestSCons
-import TestUnit
 
 import SCons.Variables
 import SCons.Subst
@@ -60,7 +59,9 @@ def check(key, value, env):
 def checkSave(file, expected):
     gdict = {}
     ldict = {}
-    exec(open(file, 'r').read(), gdict, ldict)
+    with open(file, 'r') as f:
+        exec(f.read(), gdict, ldict)
+
     assert expected == ldict, "%s\n...not equal to...\n%s" % (expected, ldict)
 
 class VariablesTestCase(unittest.TestCase):
@@ -690,13 +691,7 @@ class UnknownVariablesTestCase(unittest.TestCase):
 
 
 if __name__ == "__main__":
-    suite = unittest.TestSuite()
-    tclasses = [ VariablesTestCase,
-                 UnknownVariablesTestCase ]
-    for tclass in tclasses:
-        names = unittest.getTestCaseNames(tclass, 'test_')
-        suite.addTests(list(map(tclass, names)))
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
diff --git a/src/engine/SCons/WarningsTests.py b/src/engine/SCons/WarningsTests.py
index 7b8d00d..b5c5aef 100644
--- a/src/engine/SCons/WarningsTests.py
+++ b/src/engine/SCons/WarningsTests.py
@@ -26,8 +26,6 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 import sys
 import unittest
 
-import TestUnit
-
 import SCons.Warnings
 
 class TestOutput(object):
@@ -127,8 +125,7 @@ class WarningsTestCase(unittest.TestCase):
         assert to.out == "Foo", to.out
 
 if __name__ == "__main__":
-    suite = unittest.makeSuite(WarningsTestCase, 'test_')
-    TestUnit.run(suite)
+    unittest.main()
 
 # Local Variables:
 # tab-width:4
-- 
cgit v0.12


From f808361cbad2b50e06d03add153931a4670b08a2 Mon Sep 17 00:00:00 2001
From: Hao Wu <echowuhao@gmail.com>
Date: Thu, 12 Jul 2018 14:29:01 +0800
Subject: add change blurb

---
 src/CHANGES.txt | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index b3ef826..2f77072 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -98,6 +98,9 @@ RELEASE 3.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE
     - update wiki links to new github location
     - update bug links to new github location
 
+  From Hao Wu
+    - Replace usage of unittest.TestSuite with unittest.main() (fix #3113)
+
 
 
 
-- 
cgit v0.12