def test_rollback(self): cmy1 = MySQL(buffered=True) cmy1.connect(**self.connect_kwargs) cmy2 = MySQL(buffered=True) cmy2.connect(**self.connect_kwargs) table = "commit_test" cmy1.query("DROP TABLE IF EXISTS {0}".format(table)) cmy1.query("CREATE TABLE {0} (c1 INT)".format(table)) cmy1.query("START TRANSACTION") cmy1.query("INSERT INTO {0} (c1) VALUES " "(1), (2), (3)".format(table)) cmy1.commit() cmy2.query("SELECT * FROM {0}".format(table)) self.assertEqual([(1,), (2,), (3,)], fetch_rows(cmy2)) cmy1.query("START TRANSACTION") cmy1.query("INSERT INTO {0} (c1) VALUES " "(4), (5), (6)".format(table)) cmy1.rollback() cmy2.query("SELECT * FROM {0}".format(table)) self.assertEqual(3, cmy2.num_rows()) cmy1.query("DROP TABLE IF EXISTS {0}".format(table))
def test_autocommit(self): cmy1 = MySQL(buffered=True) cmy1.connect(**self.connect_kwargs) cmy2 = MySQL(buffered=True) cmy2.connect(**self.connect_kwargs) self.assertRaises(ValueError, cmy1.autocommit, 'ham') self.assertRaises(ValueError, cmy1.autocommit, 1) self.assertRaises(ValueError, cmy1.autocommit, None) table = "autocommit_test" # For the test we start off by making sure the autocommit is off # for both sessions cmy1.query("SELECT @@global.autocommit") if cmy1.fetch_row()[0] != 1: cmy1.query("SET @@session.autocommit = 0") cmy2.query("SET @@session.autocommit = 0") cmy1.query("DROP TABLE IF EXISTS {0}".format(table)) cmy1.query("CREATE TABLE {0} (c1 INT)".format(table)) # Turn AUTOCOMMIT on cmy1.autocommit(True) cmy1.query("INSERT INTO {0} (c1) VALUES " "(1), (2), (3)".format(table)) cmy2.query("SELECT * FROM {0}".format(table)) self.assertEqual(3, cmy2.num_rows()) rows = fetch_rows(cmy2) # Turn AUTOCOMMIT off cmy1.autocommit(False) cmy1.query("INSERT INTO {0} (c1) VALUES " "(4), (5), (6)".format(table)) cmy2.query("SELECT * FROM {0} WHERE c1 > 3".format(table)) self.assertEqual([], fetch_rows(cmy2)) cmy1.commit() cmy2.query("SELECT * FROM {0} WHERE c1 > 3".format(table)) self.assertEqual([(4,), (5,), (6,)], fetch_rows(cmy2)) cmy1.query("DROP TABLE IF EXISTS {0}".format(table)) cmy1.close() cmy2.close()
def test_field_count(self): cmy = MySQL(buffered=True) cmy.connect(**self.connect_kwargs) table = "field_count" cmy.select_db('myconnpy') cmy.query("DROP TABLE IF EXISTS {0}".format(table)) cmy.query("CREATE TABLE {0} (c1 INT, c2 INT, c3 INT)".format(table)) cmy.query("SELECT * FROM {0}".format(table)) self.assertEqual(3, cmy.field_count()) cmy.free_result() cmy.query("INSERT INTO {0} (c1, c2, c3) VALUES " "(1, 10, 100)".format(table)) cmy.commit() cmy.query("SELECT * FROM {0}".format(table)) self.assertEqual(3, cmy.field_count()) cmy.free_result() cmy.query("DROP TABLE IF EXISTS {0}".format(table))
def test_commit(self): cmy1 = MySQL(buffered=True) cmy1.connect(**self.connect_kwargs) cmy2 = MySQL(buffered=True) cmy2.connect(**self.connect_kwargs) table = "commit_test" cmy1.query("DROP TABLE IF EXISTS {0}".format(table)) cmy1.query("CREATE TABLE {0} (c1 INT)".format(table)) cmy1.query("START TRANSACTION") cmy1.query("INSERT INTO {0} (c1) VALUES " "(1), (2), (3)".format(table)) cmy2.query("SELECT * FROM {0}".format(table)) self.assertEqual([], fetch_rows(cmy2)) cmy1.commit() cmy2.query("SELECT * FROM {0}".format(table)) self.assertEqual([(1, ), (2, ), (3, )], fetch_rows(cmy2)) cmy1.query("DROP TABLE IF EXISTS {0}".format(table))