def test_bind_arguments(self): users, Address, addresses, User = ( self.tables.users, self.classes.Address, self.tables.addresses, self.classes.User, ) mapper(User, users) mapper(Address, addresses) e1 = engines.testing_engine() e2 = engines.testing_engine() e3 = engines.testing_engine() sess = Session(e3) sess.bind_mapper(User, e1) sess.bind_mapper(Address, e2) assert sess.connection().engine is e3 assert sess.connection(bind=e1).engine is e1 assert sess.connection(mapper=Address, bind=e1).engine is e1 assert sess.connection(mapper=Address).engine is e2 assert sess.connection(clause=addresses.select()).engine is e2 assert (sess.connection(mapper=User, clause=addresses.select()).engine is e1) assert (sess.connection( mapper=User, clause=addresses.select(), bind=e2).engine is e2) sess.close()
def test_savepoints(self): metadata = self.metadata some_table = Table( "t", metadata, Column("id", Integer, primary_key=True, test_needs_autoincrement=True), ) class SomeClass(object): pass mapper(SomeClass, some_table) metadata.create_all() session = Session(testing.db) target_strings = ( session.connection().dialect.identifier_preparer._strings) session.close() @profile_memory( assert_no_sessions=False, get_num_objects=lambda: len(target_strings), ) def go(): session = Session(testing.db) with session.transaction: sc = SomeClass() session.add(sc) with session.begin_nested(): session.query(SomeClass).first() go()