[1.7.x] Fixed table cleanup in GIS migration tests
Backport of ab90c4707b
from master.
This commit is contained in:
parent
417e9f383f
commit
1d0f1ee199
|
@ -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",
|
||||
[
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue