mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
bpo-45512: Raise exception if sqlite3.Connection.__init__ is called with bad isolation level (#29561)
* bpo-45512: Raise sqlite3.Connection.__init__ is called with bad isolation level * Also explicitly test allowed isolation levels * Use subTest for better error messages if something goes wrong * Update Lib/test/test_sqlite3/test_dbapi.py Co-authored-by: Dong-hee Na <donghee.na92@gmail.com> Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
This commit is contained in:
parent
b567b9d74b
commit
822c3dcce3
2 changed files with 19 additions and 5 deletions
|
|
@ -48,8 +48,8 @@ def managed_connect(*args, in_mem=False, **kwargs):
|
|||
|
||||
|
||||
# Helper for temporary memory databases
|
||||
def memory_database():
|
||||
cx = sqlite.connect(":memory:")
|
||||
def memory_database(*args, **kwargs):
|
||||
cx = sqlite.connect(":memory:", *args, **kwargs)
|
||||
return contextlib.closing(cx)
|
||||
|
||||
|
||||
|
|
@ -509,6 +509,20 @@ def test_connection_bad_limit_category(self):
|
|||
self.assertRaisesRegex(sqlite.ProgrammingError, msg,
|
||||
self.cx.setlimit, cat, 0)
|
||||
|
||||
def test_connection_init_bad_isolation_level(self):
|
||||
msg = (
|
||||
"isolation_level string must be '', 'DEFERRED', 'IMMEDIATE', or "
|
||||
"'EXCLUSIVE'"
|
||||
)
|
||||
with self.assertRaisesRegex(ValueError, msg):
|
||||
memory_database(isolation_level="BOGUS")
|
||||
|
||||
def test_connection_init_good_isolation_levels(self):
|
||||
for level in ("", "DEFERRED", "IMMEDIATE", "EXCLUSIVE", None):
|
||||
with self.subTest(level=level):
|
||||
with memory_database(isolation_level=level) as cx:
|
||||
cx.execute("select 'ok'")
|
||||
|
||||
|
||||
class UninitialisedConnectionTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue