From 1d0f1ee1993fe9fb95888158946f897a34e95a39 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Mon, 21 Apr 2014 23:08:00 +0200 Subject: [PATCH] [1.7.x] Fixed table cleanup in GIS migration tests Backport of ab90c4707b from master. --- .../tests/gis_migrations/test_operations.py | 25 +++++++++++-------- tests/migrations/test_operations.py | 6 ++--- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/django/contrib/gis/tests/gis_migrations/test_operations.py b/django/contrib/gis/tests/gis_migrations/test_operations.py index 2655b2c61c..61e4d3b69f 100644 --- a/django/contrib/gis/tests/gis_migrations/test_operations.py +++ b/django/contrib/gis/tests/gis_migrations/test_operations.py @@ -6,6 +6,7 @@ from django.contrib.gis.tests.utils import HAS_SPATIAL_DB from django.db import connection, migrations, models from django.db.migrations.migration import Migration from django.db.migrations.state import ProjectState +from django.db.utils import DatabaseError from django.test import TransactionTestCase if HAS_SPATIAL_DB: @@ -21,6 +22,19 @@ if HAS_SPATIAL_DB: class OperationTests(TransactionTestCase): available_apps = ["django.contrib.gis.tests.gis_migrations"] + def tearDown(self): + # Delete table after testing + with connection.cursor() as cursor: + try: + cursor.execute("DROP TABLE %s" % connection.ops.quote_name("gis_neighborhood")) + except DatabaseError: + pass + else: + if HAS_GEOMETRY_COLUMNS: + cursor.execute("DELETE FROM geometry_columns WHERE %s = %%s" % ( + GeometryColumns.table_name_col(),), ["gis_neighborhood"]) + super(OperationTests, self).tearDown() + def get_table_description(self, table): with connection.cursor() as cursor: return connection.introspection.get_table_description(cursor, table) @@ -38,17 +52,6 @@ class OperationTests(TransactionTestCase): return migration.apply(project_state, editor) def set_up_test_model(self): - # Delete the tables if they already exist - with connection.cursor() as cursor: - try: - cursor.execute("DROP TABLE %s" % connection.ops.quote_name("gis_neighborhood")) - except: - pass - else: - if HAS_GEOMETRY_COLUMNS: - cursor.execute("DELETE FROM geometry_columns WHERE %s = %%s" % ( - GeometryColumns.table_name_col(),), ["gis_neighborhood"]) - operations = [migrations.CreateModel( "Neighborhood", [ diff --git a/tests/migrations/test_operations.py b/tests/migrations/test_operations.py index ec0d046df8..e1b4682d58 100644 --- a/tests/migrations/test_operations.py +++ b/tests/migrations/test_operations.py @@ -5,7 +5,7 @@ from django.db.migrations.migration import Migration from django.db.migrations.state import ProjectState from django.db.models.fields import NOT_PROVIDED from django.db.transaction import atomic -from django.db.utils import IntegrityError +from django.db.utils import IntegrityError, DatabaseError from .test_base import MigrationTestBase @@ -37,11 +37,11 @@ class OperationTests(MigrationTestBase): with connection.cursor() as cursor: try: cursor.execute("DROP TABLE %s_pony" % app_label) - except: + except DatabaseError: pass try: cursor.execute("DROP TABLE %s_stable" % app_label) - except: + except DatabaseError: pass # Make the "current" state operations = [migrations.CreateModel(