aboutsummaryrefslogtreecommitdiff
path: root/www/py-django
diff options
context:
space:
mode:
authorLi-Wen Hsu <lwhsu@FreeBSD.org>2011-07-22 16:42:17 +0000
committerLi-Wen Hsu <lwhsu@FreeBSD.org>2011-07-22 16:42:17 +0000
commit895a8dbe67980fb2da232fc1007eec50d6deba04 (patch)
treefd3b0982cb0b9ba91ef3d169c03d36ec1dddf350 /www/py-django
parent9569935fbd44bc901652b0bc5c1f903c43d5f71c (diff)
downloadports-895a8dbe67980fb2da232fc1007eec50d6deba04.tar.gz
ports-895a8dbe67980fb2da232fc1007eec50d6deba04.zip
Notes
Diffstat (limited to 'www/py-django')
-rw-r--r--www/py-django/Makefile1
-rw-r--r--www/py-django/files/extra-patch-changeset_16520.diff84
2 files changed, 85 insertions, 0 deletions
diff --git a/www/py-django/Makefile b/www/py-django/Makefile
index b2b1d408c648..23ca8c2af9e2 100644
--- a/www/py-django/Makefile
+++ b/www/py-django/Makefile
@@ -41,6 +41,7 @@ OPTIONSFILE= ${PORT_DBDIR}/py-${PORTNAME}/options
.if defined(WITH_POSTGRESQL)
RUN_DEPENDS+= ${PYTHON_SITELIBDIR}/psycopg2/_psycopg.so:${PORTSDIR}/databases/py-psycopg2
+EXTRA_PATCHES+= ${FILESDIR}/extra-patch-changeset_16520.diff
.endif
.if defined(WITH_MYSQL)
diff --git a/www/py-django/files/extra-patch-changeset_16520.diff b/www/py-django/files/extra-patch-changeset_16520.diff
new file mode 100644
index 000000000000..682a5bf113ba
--- /dev/null
+++ b/www/py-django/files/extra-patch-changeset_16520.diff
@@ -0,0 +1,84 @@
+diff -uprN Django-1.3-vanilla/django/db/backends/creation.py Django-1.3/django/db/backends/creation.py
+--- django/db/backends/creation.py 2011-02-02 12:02:14.000000000 -0200
++++ django/db/backends/creation.py 2011-07-16 20:21:28.000000000 -0300
+@@ -413,7 +413,7 @@ class BaseDatabaseCreation(object):
+ # if the database supports it because PostgreSQL doesn't allow
+ # CREATE/DROP DATABASE statements within transactions.
+ cursor = self.connection.cursor()
+- self.set_autocommit()
++ self._prepare_for_test_db_ddl()
+ try:
+ cursor.execute("CREATE DATABASE %s %s" % (qn(test_database_name), suffix))
+ except Exception, e:
+@@ -458,20 +458,27 @@ class BaseDatabaseCreation(object):
+ # to do so, because it's not allowed to delete a database while being
+ # connected to it.
+ cursor = self.connection.cursor()
+- self.set_autocommit()
++ self._prepare_for_test_db_ddl()
+ time.sleep(1) # To avoid "database is being accessed by other users" errors.
+ cursor.execute("DROP DATABASE %s" % self.connection.ops.quote_name(test_database_name))
+ self.connection.close()
+
+ def set_autocommit(self):
+- "Make sure a connection is in autocommit mode."
+- if hasattr(self.connection.connection, "autocommit"):
+- if callable(self.connection.connection.autocommit):
+- self.connection.connection.autocommit(True)
+- else:
+- self.connection.connection.autocommit = True
+- elif hasattr(self.connection.connection, "set_isolation_level"):
+- self.connection.connection.set_isolation_level(0)
++ """
++ Make sure a connection is in autocommit mode. - Deprecated, not used
++ anymore by Django code. Kept for compatibility with user code that
++ might use it.
++ """
++ pass
++
++ def _prepare_for_test_db_ddl(self):
++ """
++ Internal implementation - Hook for tasks that should be performed before
++ the ``CREATE DATABASE``/``DROP DATABASE`` clauses used by testing code
++ to create/ destroy test databases. Needed e.g. in PostgreSQL to rollback
++ and close any active transaction.
++ """
++ pass
+
+ def sql_table_creation_suffix(self):
+ "SQL to append to the end of the test table creation statements"
+diff -uprN Django-1.3-vanilla/django/db/backends/oracle/creation.py Django-1.3/django/db/backends/oracle/creation.py
+--- django/db/backends/oracle/creation.py 2011-02-19 05:41:17.000000000 -0200
++++ django/db/backends/oracle/creation.py 2011-07-16 20:32:14.000000000 -0300
+@@ -269,3 +269,6 @@ class DatabaseCreation(BaseDatabaseCreat
+ settings_dict['NAME'],
+ self._test_database_user(),
+ )
++
++ def set_autocommit(self):
++ self.connection.connection.autocommit = True
+diff -uprN Django-1.3-vanilla/django/db/backends/postgresql/creation.py Django-1.3/django/db/backends/postgresql/creation.py
+--- django/db/backends/postgresql/creation.py 2010-07-29 23:54:47.000000000 -0300
++++ django/db/backends/postgresql/creation.py 2011-07-16 20:28:39.000000000 -0300
+@@ -74,3 +74,11 @@ class DatabaseCreation(BaseDatabaseCreat
+ else:
+ output = []
+ return output
++
++ def set_autocommit(self):
++ self._prepare_for_test_db_ddl()
++
++ def _prepare_for_test_db_ddl(self):
++ """Rollback and close the active transaction."""
++ self.connection.connection.rollback()
++ self.connection.connection.set_isolation_level(0)
+diff -uprN Django-1.3-vanilla/django/db/backends/sqlite3/creation.py Django-1.3/django/db/backends/sqlite3/creation.py
+--- django/db/backends/sqlite3/creation.py 2010-12-08 21:48:28.000000000 -0200
++++ django/db/backends/sqlite3/creation.py 2011-07-16 20:28:57.000000000 -0300
+@@ -68,3 +68,6 @@ class DatabaseCreation(BaseDatabaseCreat
+ if test_database_name and test_database_name != ":memory:":
+ # Remove the SQLite database file
+ os.remove(test_database_name)
++
++ def set_autocommit(self):
++ self.connection.connection.isolation_level = None