- move towards sqlalchemy test base. autogenerate tests so far
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user