def test_change_deleted_column_type_to_boolean_type_custom(self): table_name = 'abc' engine = self.engines['sqlite'] meta = MetaData() meta.bind = engine table = Table(table_name, meta, Column('id', Integer, primary_key=True), Column('foo', CustomType), Column('deleted', Integer)) table.create() # reflection of custom types has been fixed upstream if SA_VERSION < (0, 9, 0): self.assertRaises(utils.ColumnError, utils.change_deleted_column_type_to_boolean, engine, table_name) fooColumn = Column('foo', CustomType()) utils.change_deleted_column_type_to_boolean(engine, table_name, foo=fooColumn) table = utils.get_table(engine, table_name) # NOTE(boris-42): There is no way to check has foo type CustomType. # but sqlalchemy will set it to NullType. This has # been fixed upstream in recent SA versions if SA_VERSION < (0, 9, 0): self.assertTrue(isinstance(table.c.foo.type, NullType)) self.assertTrue(isinstance(table.c.deleted.type, Boolean))
def test_change_deleted_column_type_to_id_type_string(self): table_name = "abc" for key, engine in self.engines.items(): meta = MetaData() meta.bind = engine table = Table(table_name, meta, Column("id", String(255), primary_key=True), Column("deleted", Boolean)) table.create() utils.change_deleted_column_type_to_id_type(engine, table_name) table = utils.get_table(engine, table_name) self.assertTrue(isinstance(table.c.deleted.type, String))
def test_change_deleted_column_type_to_id_type_integer(self): table_name = 'abc' for engine in self.engines.values(): meta = MetaData() meta.bind = engine table = Table(table_name, meta, Column('id', Integer, primary_key=True), Column('deleted', Boolean)) table.create() utils.change_deleted_column_type_to_id_type(engine, table_name) table = utils.get_table(engine, table_name) self.assertTrue(isinstance(table.c.deleted.type, Integer))
def test_change_deleted_column_type_to_id_type_string(self): table_name = 'abc' for key, engine in self.engines.items(): meta = MetaData() meta.bind = engine table = Table(table_name, meta, Column('id', String(255), primary_key=True), Column('deleted', Boolean)) table.create() utils.change_deleted_column_type_to_id_type(engine, table_name) table = utils.get_table(engine, table_name) self.assertTrue(isinstance(table.c.deleted.type, String))
def test_change_deleted_column_type_to_boolean(self): table_name = "abc" for key, engine in self.engines.items(): meta = MetaData() meta.bind = engine table = Table(table_name, meta, Column("id", Integer, primary_key=True), Column("deleted", Integer)) table.create() utils.change_deleted_column_type_to_boolean(engine, table_name) table = utils.get_table(engine, table_name) expected_type = Boolean if key != "mysql" else mysql.TINYINT self.assertTrue(isinstance(table.c.deleted.type, expected_type))
def test_change_deleted_column_type_to_boolean(self): table_name = 'abc' for key, engine in self.engines.items(): meta = MetaData() meta.bind = engine table = Table(table_name, meta, Column('id', Integer, primary_key=True), Column('deleted', Integer)) table.create() utils.change_deleted_column_type_to_boolean(engine, table_name) table = utils.get_table(engine, table_name) expected_type = Boolean if key != "mysql" else mysql.TINYINT self.assertTrue(isinstance(table.c.deleted.type, expected_type))
def test_change_deleted_column_type_to_boolean_with_fc(self): table_name_1 = 'abc' table_name_2 = 'bcd' for key, engine in self.engines.items(): meta = MetaData() meta.bind = engine table_1 = Table(table_name_1, meta, Column('id', Integer, primary_key=True), Column('deleted', Integer)) table_1.create() table_2 = Table(table_name_2, meta, Column('id', Integer, primary_key=True), Column('foreign_id', Integer, ForeignKey('%s.id' % table_name_1)), Column('deleted', Integer)) table_2.create() utils.change_deleted_column_type_to_boolean(engine, table_name_2) table = utils.get_table(engine, table_name_2) expected_type = Boolean if key != "mysql" else mysql.TINYINT self.assertTrue(isinstance(table.c.deleted.type, expected_type))
def test_change_deleted_column_type_to_id_type_custom(self): table_name = 'abc' engine = self.engines['sqlite'] meta = MetaData() meta.bind = engine table = Table(table_name, meta, Column('id', Integer, primary_key=True), Column('foo', CustomType), Column('deleted', Boolean)) table.create() self.assertRaises(utils.ColumnError, utils.change_deleted_column_type_to_id_type, engine, table_name) fooColumn = Column('foo', CustomType()) utils.change_deleted_column_type_to_id_type(engine, table_name, foo=fooColumn) table = utils.get_table(engine, table_name) # NOTE(boris-42): There is no way to check has foo type CustomType. # but sqlalchemy will set it to NullType. self.assertTrue(isinstance(table.c.foo.type, NullType)) self.assertTrue(isinstance(table.c.deleted.type, Integer))
def test_change_deleted_column_type_to_boolean_type_custom(self): table_name = 'abc' engine = self.engines['sqlite'] meta = MetaData() meta.bind = engine table = Table(table_name, meta, Column('id', Integer, primary_key=True), Column('foo', CustomType), Column('deleted', Integer)) table.create() self.assertRaises(utils.ColumnError, utils.change_deleted_column_type_to_boolean, engine, table_name) fooColumn = Column('foo', CustomType()) utils.change_deleted_column_type_to_boolean(engine, table_name, foo=fooColumn) table = utils.get_table(engine, table_name) # NOTE(boris-42): There is no way to check has foo type CustomType. # but sqlalchemy will set it to NullType. self.assertTrue(isinstance(table.c.foo.type, NullType)) self.assertTrue(isinstance(table.c.deleted.type, Boolean))