def test_create_drop_tables_single_meta(self): Base = declarative_base() class A(Base): __tablename__ = 'A' id = Column(Integer, primary_key=True) engine = create_engine('sqlite://') cli = Sqla(orm.sessionmaker(bind=engine), metadata=Base.metadata) for verbose in [False, True]: cli.command_create_tables(verbose=verbose) self.assertTrue(engine.has_table('A')) with mock.patch.object(sys.stdin, 'readline', return_value='n'): try: cli.command_drop_tables() except SystemExit: pass self.assertTrue(engine.has_table('A')) with mock.patch.object(sys.stdin, 'readline', return_value='y'): cli.command_drop_tables() self.assertFalse(engine.has_table('A'))
def test_create_drop_tables_several_meta(self): Base1 = declarative_base() class A1(Base1): __tablename__ = 'A' id = Column(Integer, primary_key=True) Base2 = declarative_base() class A2(Base2): __tablename__ = 'A' id = Column(Integer, primary_key=True) engine1 = create_engine('sqlite://') engine2 = create_engine('sqlite://') binds = { A1.__table__: engine1, A2.__table__: engine2, } meta = { 'm1': Base1.metadata, 'm2': Base2.metadata, 'm3': MetaData(), } cli = Sqla(orm.sessionmaker(binds=binds), metadata=meta) for verbose in [False, True]: cli.command_create_tables(verbose=verbose) self.assertTrue(engine1.has_table('A')) self.assertTrue(engine2.has_table('A')) with mock.patch.object(sys.stdin, 'readline', return_value='y'): cli.command_drop_tables('m1') self.assertFalse(engine1.has_table('A')) self.assertTrue(engine2.has_table('A')) with mock.patch.object(sys.stdin, 'readline', return_value='y'): cli.command_drop_tables() self.assertFalse(engine1.has_table('A')) self.assertFalse(engine2.has_table('A')) cli.command_create_tables('m1', verbose=verbose) self.assertTrue(engine1.has_table('A')) self.assertFalse(engine2.has_table('A')) with mock.patch.object(sys.stdin, 'readline', return_value='y'): cli.command_drop_tables() self.assertFalse(engine1.has_table('A')) self.assertFalse(engine2.has_table('A')) cli.command_create_tables('m3', verbose=verbose) self.assertFalse(engine1.has_table('A')) self.assertFalse(engine2.has_table('A'))
def test_create_drop_tables_several_meta(self): Base1 = declarative_base() class A1(Base1): __tablename__ = "A" id = Column(Integer, primary_key=True) Base2 = declarative_base() class A2(Base2): __tablename__ = "A" id = Column(Integer, primary_key=True) engine1 = create_engine("sqlite://") engine2 = create_engine("sqlite://") binds = {A1.__table__: engine1, A2.__table__: engine2} meta = {"m1": Base1.metadata, "m2": Base2.metadata, "m3": MetaData()} cli = Sqla(orm.sessionmaker(binds=binds), metadata=meta) for verbose in [False, True]: cli.command_create_tables(verbose=verbose) self.assertTrue(engine1.has_table("A")) self.assertTrue(engine2.has_table("A")) with mock.patch.object(sys.stdin, "readline", return_value="y"): cli.command_drop_tables("m1") self.assertFalse(engine1.has_table("A")) self.assertTrue(engine2.has_table("A")) with mock.patch.object(sys.stdin, "readline", return_value="y"): cli.command_drop_tables() self.assertFalse(engine1.has_table("A")) self.assertFalse(engine2.has_table("A")) cli.command_create_tables("m1", verbose=verbose) self.assertTrue(engine1.has_table("A")) self.assertFalse(engine2.has_table("A")) with mock.patch.object(sys.stdin, "readline", return_value="y"): cli.command_drop_tables() self.assertFalse(engine1.has_table("A")) self.assertFalse(engine2.has_table("A")) cli.command_create_tables("m3", verbose=verbose) self.assertFalse(engine1.has_table("A")) self.assertFalse(engine2.has_table("A"))