[pypy-commit] pypy py3.5: raise on invalid isoltion levels (sqlite3)
plan_rich
pypy.commits at gmail.com
Tue Feb 21 10:54:30 EST 2017
Author: Richard Plangger <planrichi at gmail.com>
Branch: py3.5
Changeset: r90273:ef5d1489274a
Date: 2017-02-21 16:44 +0100
http://bitbucket.org/pypy/pypy/changeset/ef5d1489274a/
Log: raise on invalid isoltion levels (sqlite3)
diff --git a/lib_pypy/_sqlite3.py b/lib_pypy/_sqlite3.py
--- a/lib_pypy/_sqlite3.py
+++ b/lib_pypy/_sqlite3.py
@@ -190,6 +190,12 @@
self.cache[sql] = stat
return stat
+BEGIN_STATMENTS = (
+ "BEGIN ",
+ "BEGIN DEFERRED",
+ "BEGIN IMMEDIATE",
+ "BEGIN EXCLUSIVE",
+)
class Connection(object):
__initialized = False
@@ -691,7 +697,13 @@
if val is None:
self.commit()
else:
- self.__begin_statement = str("BEGIN " + val).encode('utf-8')
+ if not isinstance(val, str):
+ raise TypeError("isolation level must be " \
+ "a string or None, not %s" % type(val).__name__)
+ stmt = str("BEGIN " + val).upper()
+ if stmt not in BEGIN_STATMENTS:
+ raise ValueError("invalid value for isolation_level")
+ self.__begin_statement = stmt.encode('utf-8')
self._isolation_level = val
isolation_level = property(__get_isolation_level, __set_isolation_level)
More information about the pypy-commit
mailing list