Simula una base de datos MySQL en Python

Uso Python 3.4 de la distribución Anaconda. Dentro de esta distribución, encontré la biblioteca pymysql para conectarse a una base de datos MySQL existente, que se encuentra en otra computadora.

 import pymysql config = { 'user': 'my_user', 'passwd': 'my_passwd', 'host': 'my_host', 'port': my_port } try: cnx = pymysql.connect(**config) except pymysql.err.OperationalError : sys.exit("Invalid Input: Wrong username/database or password") 

Ahora quiero escribir el código de prueba para mi aplicación, en el que quiero crear una base de datos muy pequeña en la setUp de cada caso de prueba, preferiblemente en la memoria. Sin embargo, cuando bash esto de la pymysql con pymysql , no se puede establecer una conexión.

 def setUp(self): config = { 'user': 'test_user', 'passwd': 'test_passwd', 'host': 'localhost' } cnx = pymysql.connect(**config) pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 61] Connection refused)") 

He estado buscando en Google y encontré algunas cosas sobre SQLite y MySQLdb . Tengo las siguientes preguntas:

  1. ¿Es sqlite3 o MySQLdb adecuado para crear rápidamente una base de datos en la memoria?
  2. ¿Cómo instalo MySQLdb dentro del paquete Anaconda?
  3. ¿Hay un ejemplo de una base de datos de prueba, creada en la setUp ? ¿Es esto incluso una buena idea?

No tengo un servidor MySQL corriendo localmente en mi computadora.

Tanto pymysql, MySQLdb como sqlite también querrán una base de datos real para conectarse. Si solo desea probar su código, debe burlarse del módulo pymysql en el módulo que desea probar y utilizarlo en consecuencia (en su código de prueba: puede configurar el objeto simulado para que devuelva los resultados codificados a las declaraciones SQL predefinidas)

Consulte la documentación sobre la biblioteca de simulacros de Python nativa en: https://docs.python.org/3/library/unittest.mock.html

O, para Python 2: https://pypi.python.org/pypi/mock