def _run_test(self): try: database_resource = provision.DatabaseResource( self.DRIVER, provision_new_database=True) except exception.BackendNotAvailable: self.skip("database not available") schema_resource = provision.SchemaResource(database_resource, self._gen_schema) schema = schema_resource.getResource() conn = schema.database.engine.connect() engine = utils.NonCommittingEngine(conn) with engine.connect() as conn: rows = conn.execute(self.test_table.select()) self.assertEqual([], rows.fetchall()) trans = conn.begin() conn.execute(self.test_table.insert(), {"x": 1, "y": 2}) trans.rollback() rows = conn.execute(self.test_table.select()) self.assertEqual([], rows.fetchall()) trans = conn.begin() conn.execute(self.test_table.insert(), {"x": 2, "y": 3}) trans.commit() rows = conn.execute(self.test_table.select()) self.assertEqual([(2, 3)], rows.fetchall()) engine._dispose() schema_resource.finishedWith(schema)
def make(self, dependency_resources): conn = dependency_resources['database'].engine.connect() return utils.NonCommittingEngine(conn)
def setup_for_reset(self, engine, facade): conn = engine.connect() engine = utils.NonCommittingEngine(conn) self._reset_engine = enginefacade._TestTransactionFactory.apply_engine( engine, facade)