asdecimal = bool(scale and scale > 0)
super(NUMBER, self).__init__(precision=precision, scale=scale, asdecimal=asdecimal)
+
+ @property
+ def _type_affinity(self):
+ if bool(self.scale and self.scale > 0):
+ return sqltypes.Numeric
+ else:
+ return sqltypes.Integer
+
class DOUBLE_PRECISION(sqltypes.Numeric):
__visit_name__ = 'DOUBLE_PRECISION'
assert reflected_table.primary_key.columns[c.name] is not None
def assert_types_base(self, c1, c2):
- base_mro = sqltypes.TypeEngine.__mro__
- assert len(
- set(type(c1.type).__mro__).difference(base_mro).intersection(
- set(type(c2.type).__mro__).difference(base_mro)
- )
- ) > 0, "On column %r, type '%s' doesn't correspond to type '%s'" % (c1.name, c1.type, c2.type)
+ assert c1.type._compare_type_affinity(c2.type),\
+ "On column %r, type '%s' doesn't correspond to type '%s'" % \
+ (c1.name, c1.type, c2.type)
class AssertsExecutionResults(object):
def assert_result(self, result, class_, *objects):
for c1, c2 in zip(users.c, users_v.c):
eq_(c1.name, c2.name)
- assert c1.type._compare_type_affinity(c2.type)
+ self.assert_types_base(c1, c2)
for c1, c2 in zip(addresses.c, addresses_v.c):
eq_(c1.name, c2.name)
- assert c1.type._compare_type_affinity(c2.type)
+ self.assert_types_base(c1, c2)
finally:
dropViews(meta.bind, None)
Column('test2', sa.Float(5), nullable=False),
Column('test3', sa.Text),
Column('test4', sa.Numeric(10, 2), nullable = False),
- Column('test5', sa.DateTime),
+ Column('test5', sa.Date),
Column('test5-1', sa.TIMESTAMP),
parent_user_id,
- Column('test6', sa.DateTime, nullable=False),
+ Column('test6', sa.Date, nullable=False),
Column('test7', sa.Text),
Column('test8', sa.Binary),
Column('test_passivedefault2', sa.Integer, server_default='5'),