summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/sqlite3/test/dbapi.py5
-rw-r--r--Modules/_sqlite/statement.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/Lib/sqlite3/test/dbapi.py b/Lib/sqlite3/test/dbapi.py
index 2924231..e8bd8c5 100644
--- a/Lib/sqlite3/test/dbapi.py
+++ b/Lib/sqlite3/test/dbapi.py
@@ -26,6 +26,7 @@ import sys
import threading
import unittest
+from test.support import check_disallow_instantiation
from test.support.os_helper import TESTFN, unlink
from test.support import threading_helper
@@ -105,6 +106,10 @@ class ModuleTests(unittest.TestCase):
sqlite.enable_shared_cache(enable)
self.assertIn("dbapi.py", cm.filename)
+ def test_disallow_instantiation(self):
+ cx = sqlite.connect(":memory:")
+ check_disallow_instantiation(self, type(cx("select 1")))
+
class ConnectionTests(unittest.TestCase):
diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c
index 3960b21..fcf1380 100644
--- a/Modules/_sqlite/statement.c
+++ b/Modules/_sqlite/statement.c
@@ -503,7 +503,7 @@ static PyType_Spec stmt_spec = {
.name = MODULE_NAME ".Statement",
.basicsize = sizeof(pysqlite_Statement),
.flags = (Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
- Py_TPFLAGS_IMMUTABLETYPE),
+ Py_TPFLAGS_IMMUTABLETYPE | Py_TPFLAGS_DISALLOW_INSTANTIATION),
.slots = stmt_slots,
};