Но получаю ошибку :
pymysql.err.OperationalError: (2003, “Can’t connect to MySQL server on ‘host_name’ ([Errno 8] nodename nor servname provided, or not known)”)
На просторах интернета пока не нашел решения проблемы, может подскажите ? Или есть ли альтернативные библиотеки для работы с БД ?
Так все работает, этот класс у меня кочует из проекта в проект. А ваша ошибка похожа на недоступность для коннекта. Проверьте порт 3306 на удаленном хосте, к которому подключаетесь (если у вас коннект к удаленной базе). Да и вообще перед кодом всегда надо убедиться ручками что подключиться можно, чтобы проблемы в коде не искать.
Если надо могу закинуть еще реализацию фикстуры клиента для тестов
Покажу из последнего для монги, а для mysql переделать - 5 сек.
Тут все просто донельзя:
@pytest.fixture()
def dbm_client(request, dbm_config) -> DBMClient:
"""
Фикстура передает в тест клиента базы данных MongoDB с открытым
соединением и закрывает это соединение после теста вне зависимости
от его результата
"""
client = DBMClient(dbm_config)
def finalizer():
client.close()
request.addfinalizer(finalizer)
return client
dbm_config - тоже фикстура, которая парсит настройки базы:
@pytest.fixture()
def dbm_config(request, paths) -> dict:
"""
Фикстура получения конфигурации для базы данных MongoDB
"""
db = request.config.getoption('--db-mongo')
return yaml_load(open(path.join(paths['configs'],
'mongo_databases.yml')))[db]
paths - тоже фистура, которая собирает все пути в проекте относительно getcwd(), но ее легко заменить простым путем до конфига.