def test_insert_id(self): cmy = MySQL(buffered=True) cmy.connect(**self.connect_kwargs) table = "insert_id_test" cmy.query("DROP TABLE IF EXISTS {0}".format(table)) cmy.query("CREATE TABLE {0} (id INT AUTO_INCREMENT KEY)".format(table)) self.assertEqual(0, cmy.insert_id()) cmy.query("INSERT INTO {0} VALUES ()".format(table)) self.assertEqual(1, cmy.insert_id()) # Multiple-row cmy.query("INSERT INTO {0} VALUES (), ()".format(table)) self.assertEqual(2, cmy.insert_id()) cmy.query("DROP TABLE IF EXISTS {0}".format(table))
def test_next_result(self): cmy = MySQL() cmy.connect(**self.connect_kwargs) table = "next_result_test" cmy.query("DROP TABLE IF EXISTS {0}".format(table)) cmy.query("CREATE TABLE {0} (c1 INT AUTO_INCREMENT KEY)".format(table)) var_names = ('"HAVE_CRYPT"', '"CHARACTER_SET_CONNECTION"') queries = ( "SELECT VARIABLE_NAME FROM INFORMATION_SCHEMA.SESSION_VARIABLES " "WHERE VARIABLE_NAME IN ({0})".format(','.join(var_names)), "SELECT 'HAM'", "INSERT INTO {0} () VALUES ()".format(table), "SELECT 'SPAM'", ) exp = [ [(b'HAVE_CRYPT',), (b'CHARACTER_SET_CONNECTION',)], [(b'HAM',)], {'insert_id': 1, 'affected': 1}, [(b'SPAM',)] ] result = [] have_more = cmy.query(';'.join(queries)) self.assertTrue(have_more) while have_more: if cmy.have_result_set: rows = [] row = cmy.fetch_row() while row: rows.append(row) row = cmy.fetch_row() result.append(rows) else: result.append({ "affected": cmy.affected_rows(), "insert_id": cmy.insert_id() }) have_more = cmy.next_result() self.assertEqual(exp, result)
def test_next_result(self): cmy = MySQL() cmy.connect(**self.connect_kwargs) table = "next_result_test" cmy.query("DROP TABLE IF EXISTS {0}".format(table)) cmy.query("CREATE TABLE {0} (c1 INT AUTO_INCREMENT KEY)".format(table)) var_names = ('"HAVE_CRYPT"', '"CHARACTER_SET_CONNECTION"') queries = ( "SELECT VARIABLE_NAME FROM INFORMATION_SCHEMA.SESSION_VARIABLES " "WHERE VARIABLE_NAME IN ({0})".format(','.join(var_names)), "SELECT 'HAM'", "INSERT INTO {0} () VALUES ()".format(table), "SELECT 'SPAM'", ) exp = [[(b'HAVE_CRYPT', ), (b'CHARACTER_SET_CONNECTION', )], [(b'HAM', )], { 'insert_id': 1, 'affected': 1 }, [(b'SPAM', )]] result = [] have_more = cmy.query(';'.join(queries)) self.assertTrue(have_more) while have_more: if cmy.have_result_set: rows = [] row = cmy.fetch_row() while row: rows.append(row) row = cmy.fetch_row() result.append(rows) else: result.append({ "affected": cmy.affected_rows(), "insert_id": cmy.insert_id() }) have_more = cmy.next_result() self.assertEqual(exp, result)