class TestDB(unittest.TestCase): def setUp(self): self.sqlite_db = MyDB('test') self.mysql_db = MyDB('test', flavor='mysql') self.mysql_db.curs.execute(create_sql) def test_create_sqlite(self): self.assertTrue(os.path.exists('test.db')) def test_mysql_create_db(self): self.mysql_db.curs.execute('show databases') databases = [x[0] for x in self.mysql_db.curs.fetchall()] self.assertTrue('test' in databases) def test_mysql_create_tables(self): self.mysql_db.curs.execute('use test') self.mysql_db.curs.execute('show tables') tables = [x[0] for x in self.mysql_db.curs.fetchall()] self.assertTrue('geo' in tables) self.assertTrue('rdap' in tables) def test_construct_insert_query(self): sql, cols = self.mysql_db.construct_insert_query('unittest') insert, duplicate = sql self.assertEquals(cols, ['id', 'field1', 'field2', 'field3']) self.assertEquals( insert, 'INSERT INTO unittest (id,field1,field2,field3) VALUES ') self.assertEquals( duplicate, 'ON DUPLICATE KEY UPDATE field1 = VALUES(field1), field2 = VALUES(field2), field3 = VALUES(field3)' ) def test_query_to_string(self): sql, cols = self.mysql_db.construct_insert_query('unittest') queries = [(1, 'asdf', 60, '2017/05/04 15:34'), (2, 'merp', 28, '1988/11/11 20:10')] string = self.mysql_db.query_to_string('unittest', queries) self.assertEquals( string, '''(1,"asdf",60,'2017-05-04 15:34:00'),(2,"merp",28,'1988-11-11 20:10:00')''' ) def test_multi_insert(self): sql, cols = self.mysql_db.construct_insert_query('unittest') queries = [(1, 'asdf', 60, '2017/05/04 15:34'), (2, 'merp', 28, '1988/11/11 20:10')] try: self.mysql_db.multi_insert('unittest', sql, queries) except: self.fail def tearDown(self): os.remove('test.db') self.sqlite_db.curs.close() self.sqlite_db.curs.close() self.mysql_db.curs.execute('drop database test') self.mysql_db.curs.close() self.mysql_db.conn.close()