Author: Richard Plangger <[email protected]>
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)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit