diff options
author | Li-Wen Hsu <lwhsu@FreeBSD.org> | 2011-07-22 16:42:17 +0000 |
---|---|---|
committer | Li-Wen Hsu <lwhsu@FreeBSD.org> | 2011-07-22 16:42:17 +0000 |
commit | 895a8dbe67980fb2da232fc1007eec50d6deba04 (patch) | |
tree | fd3b0982cb0b9ba91ef3d169c03d36ec1dddf350 /www/py-django | |
parent | 9569935fbd44bc901652b0bc5c1f903c43d5f71c (diff) | |
download | ports-895a8dbe67980fb2da232fc1007eec50d6deba04.tar.gz ports-895a8dbe67980fb2da232fc1007eec50d6deba04.zip |
Notes
Diffstat (limited to 'www/py-django')
-rw-r--r-- | www/py-django/Makefile | 1 | ||||
-rw-r--r-- | www/py-django/files/extra-patch-changeset_16520.diff | 84 |
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 |