def test_execute_fetchflatten(self): with TRN: sql = """INSERT INTO barcodes.test_table (str_column, int_column) VALUES (%s, %s)""" args = [['insert1', 1], ['insert2', 2], ['insert3', 3]] TRN.add(sql, args, many=True) sql = "SELECT str_column, int_column FROM barcodes.test_table" TRN.add(sql) sql = "SELECT int_column FROM barcodes.test_table" TRN.add(sql) obs = TRN.execute_fetchflatten() self.assertEqual(obs, [1, 2, 3]) sql = "SELECT 42" TRN.add(sql) obs = TRN.execute_fetchflatten(idx=3) self.assertEqual(obs, ['insert1', 1, 'insert2', 2, 'insert3', 3])
def test_rollback_transaction(self): # Create decorated test function that adds a table @rollback_transaction def testfunc(): with TRN: sql = 'CREATE TABLE barcodes.rollback(test varchar NOT NULL)' TRN.add(sql) TRN.execute() # Make sure that table does not exist once function completes testfunc() with TRN: sql = """SELECT * FROM information_schema.tables WHERE table_schema = 'barcodes'""" TRN.add(sql) obs = TRN.execute_fetchflatten() self.assertNotIn('rollback', obs)