- move towards sqlalchemy test base. autogenerate tests so far

This commit is contained in:
Mike Bayer
2014-09-13 15:38:53 -04:00
parent 2778719b09
commit 4a34fd8027
16 changed files with 561 additions and 554 deletions

View File

@@ -1,7 +1,5 @@
import re
import sys
from unittest import TestCase
from . import Mock
from sqlalchemy import MetaData, Column, Table, Integer, String, Text, \
Numeric, CHAR, ForeignKey, DATETIME, INTEGER, \
@@ -13,8 +11,11 @@ from sqlalchemy.engine.reflection import Inspector
from alembic import autogenerate
from alembic.migration import MigrationContext
from . import staging_env, sqlite_db, clear_staging_env, eq_, \
db_for_dialect
from alembic.testing import TestBase
from alembic.testing import config
from alembic.testing.mock import Mock
from alembic.testing.env import staging_env, clear_staging_env
from alembic.testing import eq_
py3k = sys.version_info >= (3, )
@@ -39,10 +40,11 @@ def new_table(table, parent):
class AutogenTest(object):
__only_on__ = 'sqlite'
@classmethod
def _get_bind(cls):
return sqlite_db()
return config.db
@classmethod
def setup_class(cls):
@@ -120,24 +122,16 @@ class AutogenFixtureTest(object):
def setUp(self):
staging_env()
self.bind = self._get_bind()
self.bind = config.db
def tearDown(self):
if hasattr(self, 'metadata'):
self.metadata.drop_all(self.bind)
clear_staging_env()
@classmethod
def _get_bind(cls):
return sqlite_db()
class AutogenCrossSchemaTest(AutogenTest, TestCase):
@classmethod
def _get_bind(cls):
cls.test_schema_name = "test_schema"
return db_for_dialect('postgresql')
class AutogenCrossSchemaTest(AutogenTest, TestBase):
__only_on__ = 'postgresql'
@classmethod
def _get_db_schema(cls):
@@ -147,14 +141,14 @@ class AutogenCrossSchemaTest(AutogenTest, TestCase):
)
Table('t2', m,
Column('y', Integer),
schema=cls.test_schema_name
schema=config.test_schema
)
Table('t6', m,
Column('u', Integer)
)
Table('t7', m,
Column('v', Integer),
schema=cls.test_schema_name
schema=config.test_schema
)
return m
@@ -167,14 +161,14 @@ class AutogenCrossSchemaTest(AutogenTest, TestCase):
)
Table('t4', m,
Column('z', Integer),
schema=cls.test_schema_name
schema=config.test_schema
)
Table('t6', m,
Column('u', Integer)
)
Table('t7', m,
Column('v', Integer),
schema=cls.test_schema_name
schema=config.test_schema
)
return m
@@ -212,7 +206,7 @@ class AutogenCrossSchemaTest(AutogenTest, TestCase):
include_schemas=True
)
eq_(diffs[0][0], "add_table")
eq_(diffs[0][1].schema, self.test_schema_name)
eq_(diffs[0][1].schema, config.test_schema)
def test_default_schema_omitted_downgrade(self):
metadata = self.m2
@@ -248,15 +242,11 @@ class AutogenCrossSchemaTest(AutogenTest, TestCase):
include_schemas=True
)
eq_(diffs[0][0], "remove_table")
eq_(diffs[0][1].schema, self.test_schema_name)
eq_(diffs[0][1].schema, config.test_schema)
class AutogenDefaultSchemaTest(AutogenFixtureTest, TestCase):
@classmethod
def _get_bind(cls):
cls.test_schema_name = "test_schema"
return db_for_dialect('postgresql')
class AutogenDefaultSchemaTest(AutogenFixtureTest, TestBase):
__only_on__ = 'postgresql'
def test_uses_explcit_schema_in_default_one(self):
@@ -377,7 +367,7 @@ class ModelOne(object):
return m
class AutogenerateDiffTest(ModelOne, AutogenTest, TestCase):
class AutogenerateDiffTest(ModelOne, AutogenTest, TestBase):
def test_diffs(self):
"""test generation of diff rules"""
@@ -640,13 +630,10 @@ nullable=True))
)
class AutogenerateDiffTestWSchema(ModelOne, AutogenTest, TestCase):
class AutogenerateDiffTestWSchema(ModelOne, AutogenTest, TestBase):
__only_on__ = 'postgresql'
schema = "test_schema"
@classmethod
def _get_bind(cls):
return db_for_dialect('postgresql')
def test_diffs(self):
"""test generation of diff rules"""
@@ -801,7 +788,7 @@ name='extra_uid_fkey'),
### end Alembic commands ###""" % {"schema": self.schema})
class AutogenerateCustomCompareTypeTest(AutogenTest, TestCase):
class AutogenerateCustomCompareTypeTest(AutogenTest, TestBase):
@classmethod
def _get_db_schema(cls):
@@ -868,7 +855,7 @@ class AutogenerateCustomCompareTypeTest(AutogenTest, TestCase):
eq_(diffs[1][0][0], 'modify_type')
class AutogenKeyTest(AutogenTest, TestCase):
class AutogenKeyTest(AutogenTest, TestBase):
@classmethod
def _get_db_schema(cls):
@@ -913,7 +900,7 @@ class AutogenKeyTest(AutogenTest, TestCase):
eq_(diffs[1][3].key, "otherkey")
class AutogenerateDiffOrderTest(AutogenTest, TestCase):
class AutogenerateDiffOrderTest(AutogenTest, TestBase):
@classmethod
def _get_db_schema(cls):
@@ -952,7 +939,7 @@ class AutogenerateDiffOrderTest(AutogenTest, TestCase):
eq_(diffs[1][1].name, "child")
class CompareMetadataTest(ModelOne, AutogenTest, TestCase):
class CompareMetadataTest(ModelOne, AutogenTest, TestBase):
def test_compare_metadata(self):
metadata = self.m2
@@ -1065,13 +1052,10 @@ class CompareMetadataTest(ModelOne, AutogenTest, TestCase):
eq_(diffs[2][1][6], True)
class PGCompareMetaData(ModelOne, AutogenTest, TestCase):
class PGCompareMetaData(ModelOne, AutogenTest, TestBase):
__only_on__ = 'postgresql'
schema = "test_schema"
@classmethod
def _get_bind(cls):
return db_for_dialect('postgresql')
def test_compare_metadata_schema(self):
metadata = self.m2