[pypy-svn] pypy default: sqlite: Fix the "check_closed()" tests

amauryfa commits-noreply at bitbucket.org
Wed Feb 9 19:13:27 CET 2011


Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: 
Changeset: r41748:9df946a3f31c
Date: 2011-02-09 16:54 +0100
http://bitbucket.org/pypy/pypy/changeset/9df946a3f31c/

Log:	sqlite: Fix the "check_closed()" tests

diff --git a/lib_pypy/_sqlite3.py b/lib_pypy/_sqlite3.py
--- a/lib_pypy/_sqlite3.py
+++ b/lib_pypy/_sqlite3.py
@@ -497,6 +497,8 @@
             raise self._get_exception(ret)
 
     def set_authorizer(self, callback):
+        self._check_thread()
+        self._check_closed()
         raise NotImplementedError
 
     def create_function(self, name, num_args, callback):
@@ -679,6 +681,7 @@
         return self.statement
 
     def fetchone(self):
+        self._check_closed()
         if self.statement is None:
             return None
         try:
@@ -687,6 +690,7 @@
             return None
 
     def fetchmany(self, size=None):
+        self._check_closed()
         if self.statement is None:
             return []
         if size is None:
@@ -699,6 +703,7 @@
         return lst
 
     def fetchall(self):
+        self._check_closed()
         if self.statement is None:
             return []
         return list(self.statement)
@@ -712,8 +717,13 @@
         return sqlite.sqlite3_last_insert_rowid(self.connection.db)
 
     def close(self):
+        if not self.connection:
+            return
         self._check_closed()
-        # XXX this should do reset and set statement to None it seems
+        if self.statement:
+            self.statement.reset()
+            self.statement = None
+        self.connection = None
 
     def setinputsizes(self, *args):
         pass

diff --git a/lib-python/modified-2.7.0/sqlite3/test/dbapi.py b/lib-python/modified-2.7.0/sqlite3/test/dbapi.py
--- a/lib-python/modified-2.7.0/sqlite3/test/dbapi.py
+++ b/lib-python/modified-2.7.0/sqlite3/test/dbapi.py
@@ -829,7 +829,7 @@
         con = sqlite.connect(":memory:")
         con.close()
         try:
-            con()
+            con("select 1")
             self.fail("Should have raised a ProgrammingError")
         except sqlite.ProgrammingError:
             pass


More information about the Pypy-commit mailing list