summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEzio Melotti <ezio.melotti@gmail.com>2013-03-01 09:23:28 (GMT)
committerEzio Melotti <ezio.melotti@gmail.com>2013-03-01 09:23:28 (GMT)
commitf79493bf9ebb191f06083fdcd0bce4626641b4ac (patch)
tree036c52baa9fd0bc239a8ffc67c2f271f1c6a4c8d
parent520378f81d30105d421e7b3a53c30fb0346be269 (diff)
downloadcpython-f79493bf9ebb191f06083fdcd0bce4626641b4ac.zip
cpython-f79493bf9ebb191f06083fdcd0bce4626641b4ac.tar.gz
cpython-f79493bf9ebb191f06083fdcd0bce4626641b4ac.tar.bz2
#17082: test_dbm* now work with unittest test discovery. Patch by Zachary Ware.
-rw-r--r--Lib/test/test_dbm.py20
-rw-r--r--Lib/test/test_dbm_dumb.py10
-rwxr-xr-xLib/test/test_dbm_gnu.py7
-rwxr-xr-xLib/test/test_dbm_ndbm.py5
-rw-r--r--Misc/NEWS3
5 files changed, 17 insertions, 28 deletions
diff --git a/Lib/test/test_dbm.py b/Lib/test/test_dbm.py
index 02df7e3..752e0b7 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 6b981c4..e233929 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 30a39f7..bf62946 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 00dcbd2..f9d3bef 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 3149f90..91c4153 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -644,6 +644,9 @@ Tests
- Issue #15539: Added regression tests for Tools/scripts/pindent.py.
+- 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.