sql >> データベース >  >> RDS >> Mysql

PythonでMySQLデータベースをモックします

    tests.mysqld を使用して、mysqlデータベースをモックできます。 (pip install testing.mysqld

    ノイズの多いエラーログが発生する 、テストするときはこの設定が好きです:

    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. 別のテーブルの番号に基づいて、1つのテーブルに複数の行を挿入します

    2. SQLServerのCROSSAPPLYに類似したPostgres

    3. SQLの主キー:主キーの操作について知っておくべきことすべて

    4. MacでMySQLWorkbenchに接続できません。 '127.0.0.1'(61)MacMacintoshでMySQLサーバーに接続できません