sql >> Databáze >  >> RDS >> Mysql

Vysmívat se MySQL databázi v Pythonu

Mysql db můžete zesměšňovat pomocí testing.mysqld (pip install testing.mysqld )

Kvůli některým hlučným protokolům chyb, které se objevují , Při testování se mi líbí toto nastavení:

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. MySQL - SELECT WHERE pole IN (poddotaz) - Extrémně pomalé proč?

  2. Vraťte 0, pokud je pole v MySQL prázdné

  3. Zakažte všechna omezení tabulky v Oracle

  4. ORA-01017 Neplatné uživatelské jméno/heslo při připojování k 11g databázi z 9i klienta