[1.7.x] Fixed table cleanup in GIS migration tests

Backport of ab90c4707b from master.
This commit is contained in:
Claude Paroz 2014-04-21 23:08:00 +02:00
parent 417e9f383f
commit 1d0f1ee199
2 changed files with 17 additions and 14 deletions

View File

@ -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",
[

View File

@ -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(