import pymysql def create_db(hostname="localhost", port=3306, username=None, password=None, dbname=None): """Create test database. :param hostname: string :param port: int :param username: string :param password: string :param dbname: string :return: """ cn = pymysql.connect( host=hostname, port=port, user=username, password=password, charset="utf8mb4", cursorclass=pymysql.cursors.DictCursor ) with cn.cursor() as cr: cr.execute("drop database if exists " + dbname) cr.execute("create database " + dbname) cn.close() cn = create_cn(hostname, port, password, username, dbname) return cn def create_cn(hostname, port, password, username, dbname): """Open connection to database. :param hostname: :param port: :param password: :param username: :param dbname: string :return: psycopg2.connection """ cn = pymysql.connect( host=hostname, port=port, user=username, password=password, db=dbname, charset="utf8mb4", cursorclass=pymysql.cursors.DictCursor ) return cn def drop_db(hostname="localhost", port=3306, username=None, password=None, dbname=None): """Drop database. :param hostname: string :param port: int :param username: string :param password: string :param dbname: string """ cn = pymysql.connect( host=hostname, port=port, user=username, password=password, db=dbname, charset="utf8mb4", cursorclass=pymysql.cursors.DictCursor ) with cn.cursor() as cr: cr.execute("drop database if exists " + dbname) close_cn(cn) def close_cn(cn=None): """Close connection. :param connection: pymysql.connection """ if cn: cn.close()