Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Mock bazy danych MySQL w Pythonie

Możesz wykpić bazę danych mysql za pomocą testing.mysqld (pip install testing.mysqld )

Z powodu niektórych hałaśliwych dzienników błędów, które się pojawiają , podoba mi się ta konfiguracja podczas testowania:

import testing.mysqld
from sqlalchemy import create_engine

# prevent generating brand new db every time.  Speeds up tests.
MYSQLD_FACTORY = testing.mysqld.MysqldFactory(cache_initialized_db=True, port=7531)


def tearDownModule():
    """Tear down databases after test script has run.
    https://docs.python.org/3/library/unittest.html#setupclass-and-teardownclass
    """
    MYSQLD_FACTORY.clear_cache()


class TestWhatever(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.mysql = MYSQLD_FACTORY()
        cls.db_conn = create_engine(cls.mysql.url()).connect()

    def setUp(self):
        self.mysql.start()
        self.db_conn.execute("""CREATE TABLE `foo` (blah)""")

    def tearDown(self):
        self.db_conn.execute("DROP TABLE foo")

    @classmethod
    def tearDownClass(cls):
        cls.mysql.stop()  # from source code we can see this kills the pid

    def test_something(self):
        # something useful


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj zapisany ciąg md5 na wartość dziesiętną w MySQL

  2. Zamknij MySQL bez ponownego uruchamiania na El Capitan

  3. Obsługa ograniczenia klucza obcego w Rails

  4. MySQL usuwa wiersz z wielu tabel

  5. Połączenie z bazą danych laravel zwraca niezdefiniowany błąd indeksu