diff --git a/Lib/test/test_dbm.py b/Lib/test/test_dbm.py index 95301bff101..e02fa7549b2 100644 --- a/Lib/test/test_dbm.py +++ b/Lib/test/test_dbm.py @@ -34,7 +34,7 @@ def delete_files(): test.support.unlink(f) -class AnyDBMTestCase(unittest.TestCase): +class AnyDBMTestCase: _dict = {'0': b'', 'a': b'Python:', 'b': b'Programming', @@ -119,10 +119,6 @@ class AnyDBMTestCase(unittest.TestCase): class WhichDBTestCase(unittest.TestCase): - # Actual test methods are added to namespace after class definition. - def __init__(self, *args): - unittest.TestCase.__init__(self, *args) - def test_whichdb(self): for module in dbm_iterator(): # Check whether whichdb correctly guesses module name @@ -169,12 +165,16 @@ class WhichDBTestCase(unittest.TestCase): self.d.close() -def test_main(): - classes = [WhichDBTestCase] +def load_tests(loader, tests, pattern): + classes = [] for mod in dbm_iterator(): - classes.append(type("TestCase-" + mod.__name__, (AnyDBMTestCase,), + classes.append(type("TestCase-" + mod.__name__, + (AnyDBMTestCase, unittest.TestCase), {'module': mod})) - test.support.run_unittest(*classes) + suites = [unittest.makeSuite(c) for c in classes] + + tests.addTests(suites) + return tests if __name__ == "__main__": - test_main() + unittest.main() diff --git a/Lib/test/test_dbm_dumb.py b/Lib/test/test_dbm_dumb.py index 6b981c429df..e23392959a8 100644 --- a/Lib/test/test_dbm_dumb.py +++ b/Lib/test/test_dbm_dumb.py @@ -29,9 +29,6 @@ class DumbDBMTestCase(unittest.TestCase): '\u00fc'.encode('utf-8') : b'!', } - def __init__(self, *args): - unittest.TestCase.__init__(self, *args) - def test_dumbdbm_creation(self): f = dumbdbm.open(_fname, 'c') self.assertEqual(list(f.keys()), []) @@ -195,11 +192,6 @@ class DumbDBMTestCase(unittest.TestCase): def setUp(self): _delete_files() -def test_main(): - try: - support.run_unittest(DumbDBMTestCase) - finally: - _delete_files() if __name__ == "__main__": - test_main() + unittest.main() diff --git a/Lib/test/test_dbm_gnu.py b/Lib/test/test_dbm_gnu.py index 30a39f7b895..bf6294685a3 100755 --- a/Lib/test/test_dbm_gnu.py +++ b/Lib/test/test_dbm_gnu.py @@ -2,7 +2,7 @@ from test import support gdbm = support.import_module("dbm.gnu") #skip if not supported import unittest import os -from test.support import verbose, TESTFN, run_unittest, unlink +from test.support import verbose, TESTFN, unlink filename = TESTFN @@ -81,8 +81,5 @@ class TestGdbm(unittest.TestCase): self.assertTrue(size1 > size2 >= size0) -def test_main(): - run_unittest(TestGdbm) - if __name__ == '__main__': - test_main() + unittest.main() diff --git a/Lib/test/test_dbm_ndbm.py b/Lib/test/test_dbm_ndbm.py index 00dcbd2160e..f9d3befde98 100755 --- a/Lib/test/test_dbm_ndbm.py +++ b/Lib/test/test_dbm_ndbm.py @@ -36,8 +36,5 @@ class DbmTestCase(unittest.TestCase): except error: self.fail() -def test_main(): - support.run_unittest(DbmTestCase) - if __name__ == '__main__': - test_main() + unittest.main() diff --git a/Misc/NEWS b/Misc/NEWS index 1c5f3b395bb..57470e55fce 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -896,6 +896,9 @@ Tests - Issue #16836: Enable IPv6 support even if IPv6 is disabled on the build host. +- Issue #17082: test_dbm* now work with unittest test discovery. + Patch by Zachary Ware. + - Issue #17079: test_ctypes now works with unittest test discovery. Patch by Zachary Ware.