[Python-checkins] bpo-45181: Simplify loading sqlite3 tests (GH-28304)

serhiy-storchaka webhook-mailer at python.org
Mon Sep 13 07:16:31 EDT 2021


https://github.com/python/cpython/commit/3e19409d6443c66a6a7d62f58b2bb4e8330e56c4
commit: 3e19409d6443c66a6a7d62f58b2bb4e8330e56c4
branch: main
author: Serhiy Storchaka <storchaka at gmail.com>
committer: serhiy-storchaka <storchaka at gmail.com>
date: 2021-09-13T14:16:26+03:00
summary:

bpo-45181: Simplify loading sqlite3 tests (GH-28304)

Use unittest discover instead of manually enumerating all
test modules and classes.
Also add support for filtering them by pattern.

files:
A Lib/sqlite3/test/test_backup.py
A Lib/sqlite3/test/test_dbapi.py
A Lib/sqlite3/test/test_dump.py
A Lib/sqlite3/test/test_factory.py
A Lib/sqlite3/test/test_hooks.py
A Lib/sqlite3/test/test_regression.py
A Lib/sqlite3/test/test_transactions.py
A Lib/sqlite3/test/test_types.py
A Lib/sqlite3/test/test_userfunctions.py
D Lib/sqlite3/test/backup.py
D Lib/sqlite3/test/dbapi.py
D Lib/sqlite3/test/dump.py
D Lib/sqlite3/test/factory.py
D Lib/sqlite3/test/hooks.py
D Lib/sqlite3/test/regression.py
D Lib/sqlite3/test/transactions.py
D Lib/sqlite3/test/types.py
D Lib/sqlite3/test/userfunctions.py
M Lib/test/test_sqlite.py

diff --git a/Lib/sqlite3/test/backup.py b/Lib/sqlite3/test/test_backup.py
similarity index 98%
rename from Lib/sqlite3/test/backup.py
rename to Lib/sqlite3/test/test_backup.py
index 4e30594bec6d9..384dd9229ab34 100644
--- a/Lib/sqlite3/test/backup.py
+++ b/Lib/sqlite3/test/test_backup.py
@@ -160,8 +160,5 @@ def test_database_source_name(self):
             self.verify_backup(bck)
 
 
-def suite():
-    return unittest.TestLoader().loadTestsFromTestCase(BackupTests)
-
 if __name__ == "__main__":
     unittest.main()
diff --git a/Lib/sqlite3/test/dbapi.py b/Lib/sqlite3/test/test_dbapi.py
similarity index 98%
rename from Lib/sqlite3/test/dbapi.py
rename to Lib/sqlite3/test/test_dbapi.py
index 89f773daf24a1..34cadeebfa262 100644
--- a/Lib/sqlite3/test/dbapi.py
+++ b/Lib/sqlite3/test/test_dbapi.py
@@ -1156,28 +1156,5 @@ def wait():
         self.assertEqual(proc.returncode, 0)
 
 
-def suite():
-    tests = [
-        ClosedConTests,
-        ClosedCurTests,
-        ConnectionTests,
-        ConstructorTests,
-        CursorTests,
-        ExtensionTests,
-        ModuleTests,
-        MultiprocessTests,
-        OpenTests,
-        SqliteOnConflictTests,
-        ThreadTests,
-        UninitialisedConnectionTests,
-    ]
-    return unittest.TestSuite(
-        [unittest.TestLoader().loadTestsFromTestCase(t) for t in tests]
-    )
-
-def test():
-    runner = unittest.TextTestRunner()
-    runner.run(suite())
-
 if __name__ == "__main__":
-    test()
+    unittest.main()
diff --git a/Lib/sqlite3/test/dump.py b/Lib/sqlite3/test/test_dump.py
similarity index 91%
rename from Lib/sqlite3/test/dump.py
rename to Lib/sqlite3/test/test_dump.py
index 618a7fd31c154..1f14c620f0d24 100644
--- a/Lib/sqlite3/test/dump.py
+++ b/Lib/sqlite3/test/test_dump.py
@@ -70,17 +70,6 @@ def __getitem__(self, index):
         got = list(self.cx.iterdump())
         self.assertEqual(expected, got)
 
-def suite():
-    tests = [
-        DumpTests,
-    ]
-    return unittest.TestSuite(
-        [unittest.TestLoader().loadTestsFromTestCase(t) for t in tests]
-    )
-
-def test():
-    runner = unittest.TextTestRunner()
-    runner.run(suite())
 
 if __name__ == "__main__":
-    test()
+    unittest.main()
diff --git a/Lib/sqlite3/test/factory.py b/Lib/sqlite3/test/test_factory.py
similarity index 96%
rename from Lib/sqlite3/test/factory.py
rename to Lib/sqlite3/test/test_factory.py
index 9e7a7e28c6ed3..420855ba34b60 100644
--- a/Lib/sqlite3/test/factory.py
+++ b/Lib/sqlite3/test/test_factory.py
@@ -305,22 +305,6 @@ def test_custom(self):
     def tearDown(self):
         self.con.close()
 
-def suite():
-    tests = [
-        ConnectionFactoryTests,
-        CursorFactoryTests,
-        RowFactoryTests,
-        RowFactoryTestsBackwardsCompat,
-        TextFactoryTests,
-        TextFactoryTestsWithEmbeddedZeroBytes,
-    ]
-    return unittest.TestSuite(
-        [unittest.TestLoader().loadTestsFromTestCase(t) for t in tests]
-    )
-
-def test():
-    runner = unittest.TextTestRunner()
-    runner.run(suite())
 
 if __name__ == "__main__":
-    test()
+    unittest.main()
diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/test_hooks.py
similarity index 96%
rename from Lib/sqlite3/test/hooks.py
rename to Lib/sqlite3/test/test_hooks.py
index 43e3810d13df1..bf454b2aa887f 100644
--- a/Lib/sqlite3/test/hooks.py
+++ b/Lib/sqlite3/test/test_hooks.py
@@ -24,7 +24,7 @@
 import sqlite3 as sqlite
 
 from test.support.os_helper import TESTFN, unlink
-from .userfunctions import with_tracebacks
+from .test_userfunctions import with_tracebacks
 
 class CollationTests(unittest.TestCase):
     def test_create_collation_not_string(self):
@@ -290,19 +290,5 @@ def trace(statement):
         self.assertEqual(traced_statements, queries)
 
 
-def suite():
-    tests = [
-        CollationTests,
-        ProgressTests,
-        TraceCallbackTests,
-    ]
-    return unittest.TestSuite(
-        [unittest.TestLoader().loadTestsFromTestCase(t) for t in tests]
-    )
-
-def test():
-    runner = unittest.TextTestRunner()
-    runner.run(suite())
-
 if __name__ == "__main__":
-    test()
+    unittest.main()
diff --git a/Lib/sqlite3/test/regression.py b/Lib/sqlite3/test/test_regression.py
similarity index 98%
rename from Lib/sqlite3/test/regression.py
rename to Lib/sqlite3/test/test_regression.py
index 4a422c8d43daa..f75e48f15604f 100644
--- a/Lib/sqlite3/test/regression.py
+++ b/Lib/sqlite3/test/test_regression.py
@@ -436,17 +436,5 @@ def test_return_empty_bytestring(self):
         self.assertEqual(val, b'')
 
 
-def suite():
-    tests = [
-        RegressionTests
-    ]
-    return unittest.TestSuite(
-        [unittest.TestLoader().loadTestsFromTestCase(t) for t in tests]
-    )
-
-def test():
-    runner = unittest.TextTestRunner()
-    runner.run(suite())
-
 if __name__ == "__main__":
-    test()
+    unittest.main()
diff --git a/Lib/sqlite3/test/transactions.py b/Lib/sqlite3/test/test_transactions.py
similarity index 95%
rename from Lib/sqlite3/test/transactions.py
rename to Lib/sqlite3/test/test_transactions.py
index 80284902a1a6e..8ea352b9ef0f9 100644
--- a/Lib/sqlite3/test/transactions.py
+++ b/Lib/sqlite3/test/test_transactions.py
@@ -195,19 +195,6 @@ def test_transactional_ddl(self):
     def tearDown(self):
         self.con.close()
 
-def suite():
-    tests = [
-        SpecialCommandTests,
-        TransactionTests,
-        TransactionalDDL,
-    ]
-    return unittest.TestSuite(
-        [unittest.TestLoader().loadTestsFromTestCase(t) for t in tests]
-    )
-
-def test():
-    runner = unittest.TextTestRunner()
-    runner.run(suite())
 
 if __name__ == "__main__":
-    test()
+    unittest.main()
diff --git a/Lib/sqlite3/test/types.py b/Lib/sqlite3/test/test_types.py
similarity index 97%
rename from Lib/sqlite3/test/types.py
rename to Lib/sqlite3/test/test_types.py
index b8926ffee22e8..396f153a75f20 100644
--- a/Lib/sqlite3/test/types.py
+++ b/Lib/sqlite3/test/test_types.py
@@ -530,23 +530,6 @@ def test_date_time_sub_seconds_floating_point(self):
         ts2 = self.cur.fetchone()[0]
         self.assertEqual(ts, ts2)
 
-def suite():
-    tests = [
-        BinaryConverterTests,
-        ColNamesTests,
-        CommonTableExpressionTests,
-        DateTimeTests,
-        DeclTypesTests,
-        ObjectAdaptationTests,
-        SqliteTypeTests,
-    ]
-    return unittest.TestSuite(
-        [unittest.TestLoader().loadTestsFromTestCase(t) for t in tests]
-    )
-
-def test():
-    runner = unittest.TextTestRunner()
-    runner.run(suite())
 
 if __name__ == "__main__":
-    test()
+    unittest.main()
diff --git a/Lib/sqlite3/test/userfunctions.py b/Lib/sqlite3/test/test_userfunctions.py
similarity index 98%
rename from Lib/sqlite3/test/userfunctions.py
rename to Lib/sqlite3/test/test_userfunctions.py
index b4d5181777ebd..ad408475b73af 100644
--- a/Lib/sqlite3/test/userfunctions.py
+++ b/Lib/sqlite3/test/test_userfunctions.py
@@ -661,22 +661,5 @@ def authorizer_cb(action, arg1, arg2, dbname, source):
         return sqlite.SQLITE_OK
 
 
-def suite():
-    tests = [
-        AggregateTests,
-        AuthorizerIllegalTypeTests,
-        AuthorizerLargeIntegerTests,
-        AuthorizerRaiseExceptionTests,
-        AuthorizerTests,
-        FunctionTests,
-    ]
-    return unittest.TestSuite(
-        [unittest.TestLoader().loadTestsFromTestCase(t) for t in tests]
-    )
-
-def test():
-    runner = unittest.TextTestRunner()
-    runner.run(suite())
-
 if __name__ == "__main__":
-    test()
+    unittest.main()
diff --git a/Lib/test/test_sqlite.py b/Lib/test/test_sqlite.py
index 73002f228fa70..9992a02e5d90a 100644
--- a/Lib/test/test_sqlite.py
+++ b/Lib/test/test_sqlite.py
@@ -1,26 +1,20 @@
 import test.support
 from test.support import import_helper
+from test.support import load_package_tests
 
 # Skip test if _sqlite3 module not installed
 import_helper.import_module('_sqlite3')
 
 import unittest
-import sqlite3
-from sqlite3.test import (dbapi, types, userfunctions,
-                                factory, transactions, hooks, regression,
-                                dump, backup)
+import os
+import sqlite3.test
 
-def load_tests(*args):
+def load_tests(loader, tests, pattern):
     if test.support.verbose:
         print("test_sqlite: testing with version",
               "{!r}, sqlite_version {!r}".format(sqlite3.version,
                                                  sqlite3.sqlite_version))
-    return unittest.TestSuite([dbapi.suite(), types.suite(),
-                               userfunctions.suite(),
-                               factory.suite(), transactions.suite(),
-                               hooks.suite(), regression.suite(),
-                               dump.suite(),
-                               backup.suite()])
+    return load_package_tests(os.path.dirname(sqlite3.test.__file__), loader, tests, pattern)
 
 if __name__ == "__main__":
     unittest.main()



More information about the Python-checkins mailing list