from sqlalchemy import MetaData, Column, Table, Integer, String, Text, \
- Numeric, CHAR, ForeignKey, DATETIME
+ Numeric, CHAR, ForeignKey, DATETIME, TypeDecorator
from sqlalchemy.types import NULLTYPE
from alembic import autogenerate, context
from unittest import TestCase
)
assert not diff
+ def test_affinity_typedec(self):
+ class MyType(TypeDecorator):
+ impl = CHAR
+
+ def load_dialect_impl(self, dialect):
+ if dialect.name == 'sqlite':
+ return dialect.type_descriptor(Integer())
+ else:
+ return dialect.type_descriptor(CHAR(32))
+
+ diff = []
+ autogenerate._compare_type("sometable", "somecol",
+ {"name":"somecol", "type":Integer(),
+ "nullable":True, "default":None},
+ Column("somecol", MyType()),
+ diff, self.autogen_context
+ )
+ assert not diff
class AutogenRenderTest(TestCase):
"""test individual directives"""