Ошибка при коннекте к БД при использовании фикстуры scope = session

При SQL запросе к бд через фикстуру session получаю ошибку

Lost connection to MySQL server during query (%s)" % (e,)) E pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query ([WinError 10053] Программа на вашем хост-компьютере разорвала установленное подключение)')

Не понимаю почему ошибка, если поменять scope на function, то все отработает, кто знает подскажите пожалуйста. Основная идея при прогоне тестов создавать одно соединение и в нем делать запросы, чтобы не тратить время теста на коннекты.

фикстура

@pytest.fixture(scope='session')
def mysql_connect():
    connect = MySql().connect()
    yield connect[0]
    MySql().connect_close(connect=connect[0], tunel=connect[1])

тест

def test_sdfds(mysql_connect):
    sql = 'Select * from bd_user where ID = 1'
    print(MySql().query_new(connect=mysql_connect, query=sql))

класс коннекта

class MySql(object):
    def __init__(self):
        self.config = Config().get()

    def connect(self):
        tunel = sshtunnel.SSHTunnelForwarder(
                (self.config['host'], int(self.config['port'])),
                ssh_username=self.config['host_user'],
                ssh_private_key='../../../new_key',
                remote_bind_address=(self.config['mysql_host'], int(self.config['mysql_port'])))
        tunel.start()
        connection = pymysql.connect(user=self.config['mysql_user'],
                              passwd=self.config['mysql_password'],
                              db=self.config['mysql_db'],
                              host='localhost',
                              port=tunel.local_bind_port, connect_timeout=1000)
        return (connection, tunel)

    def connect_close(self, connect, tunel):
        connect.close()
        tunel.stop()

    def query_new(self, connect, query, params=None):
        try:
            with connect.cursor() as cursor:
                sql = query
                cursor.execute(query=sql, args=params)
                result = cursor.fetchall()
                id = cursor.lastrowid
                connect.commit()
        finally:
            pass
        return {"result": result, "insert_id": id}

Ответы (0 шт):