Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
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

0 comments on commit e6ee971

Please sign in to comment.
Something went wrong with that request. Please try again.