Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

The tests now run correctly with the new psycopg2 backend. There's 4 …

…failures, but they all have to do with the new way the psycopg2 handles datetimes and are probably a single fix.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@2940 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit e6ee9714983c7245747213a2a1d127070745c0ad 1 parent 5a8ed6f
@jacobian jacobian authored
Showing with 15 additions and 13 deletions.
  1. +15 −13 tests/runtests.py
View
28 tests/runtests.py
@@ -114,14 +114,11 @@ def run_tests(self):
global TEST_DATABASE_NAME
TEST_DATABASE_NAME = ":memory:"
else:
- # Create the test database and connect to it. We need autocommit()
- # because PostgreSQL doesn't allow CREATE DATABASE statements
- # within transactions.
+ # Create the test database and connect to it. We need to autocommit
+ # if the database supports it because PostgreSQL doesn't allow
+ # CREATE/DROP DATABASE statements within transactions.
cursor = connection.cursor()
- try:
- connection.connection.autocommit(1)
- except AttributeError:
- pass
+ self._set_autocommit(connection)
self.output(1, "Creating test database")
try:
cursor.execute("CREATE DATABASE %s" % TEST_DATABASE_NAME)
@@ -224,12 +221,8 @@ def run_tests(self):
settings.DATABASE_NAME = old_database_name
cursor = connection.cursor()
self.output(1, "Deleting test database")
- try:
- connection.connection.autocommit(1)
- except AttributeError:
- pass
- else:
- time.sleep(1) # To avoid "database is being accessed by other users" errors.
+ self._set_autocommit(connection)
+ time.sleep(1) # To avoid "database is being accessed by other users" errors.
cursor.execute("DROP DATABASE %s" % TEST_DATABASE_NAME)
# Display output.
@@ -242,6 +235,15 @@ def run_tests(self):
print "%s error%s:" % (len(error_list), len(error_list) != 1 and 's' or '')
else:
print "All tests passed."
+
+ def _set_autocommit(self, connection):
+ """
+ Make sure a connection is in autocommit mode.
+ """
+ if hasattr(connection.connection, "autocommit"):
+ connection.connection.autocommit(True)
+ elif hasattr(connection.connection, "set_isolation_level"):
+ connection.connection.set_isolation_level(0)
if __name__ == "__main__":
from optparse import OptionParser
Please sign in to comment.
Something went wrong with that request. Please try again.