def test_post_rollback_funcs_error(self): def func(): raise ValueError() with self.assertRaises(RuntimeError): with TRN: TRN.add("SELECT 42") TRN.add_post_rollback_func(func) TRN.rollback()
def test_post_rollback_funcs(self): fd, fp = mkstemp() close(fd) self._files_to_remove.append(fp) def func(fp): with open(fp, "w") as f: f.write("\n") with TRN: TRN.add("SELECT 42") TRN.add_post_rollback_func(func, fp) TRN.rollback() self.assertTrue(exists(fp))
def test_execute_commit_false_rollback(self): with TRN: sql = """INSERT INTO qiita.test_table (str_column, int_column) VALUES (%s, %s) RETURNING str_column, int_column""" args = [["insert1", 1], ["insert2", 2], ["insert3", 3]] TRN.add(sql, args, many=True) obs = TRN.execute() exp = [[["insert1", 1]], [["insert2", 2]], [["insert3", 3]]] self.assertEqual(obs, exp) self._assert_sql_equal([]) TRN.rollback() self._assert_sql_equal([])
def test_context_manager_checker(self): with self.assertRaises(RuntimeError): TRN.add("SELECT 42") with self.assertRaises(RuntimeError): TRN.execute() with self.assertRaises(RuntimeError): TRN.commit() with self.assertRaises(RuntimeError): TRN.rollback() with TRN: TRN.add("SELECT 42") with self.assertRaises(RuntimeError): TRN.execute()