Как реализовать коннектор к базе данных в Python? Как передаётся соединение в тесты через фикстуры? Будет ли выполнен teardown, если тест упадёт? Какой статус будет у теста, если подключение к БД не удалось?

Фикстура создаёт соединение, передаёт его тесту через yield и закрывает в finally. Обычное падение теста не отменяет teardown; ошибка подключения до yield даёт ошибку setup, и тело теста не выполняется.

Короткий ответ

Что ответить на собеседовании

Фикстура создаёт соединение, передаёт его тесту через yield и закрывает в finally. Обычное падение теста не отменяет teardown; ошибка подключения до yield даёт ошибку setup, и тело теста не выполняется.

Подробный разбор

Ответ с пояснениями

Фикстура создаёт соединение, передаёт его тесту через yield и закрывает в finally. Обычное падение теста не отменяет teardown; ошибка подключения до yield даёт ошибку setup, и тело теста не выполняется.

Схема с драйвером выбранной БД:

import pytest

@pytest.fixture
def db():
    conn = connect_test_database()
    try:
        yield conn
    finally:
        conn.close()

connect_test_database — проектная функция подключения к изолированной тестовой БД. Если подготовка состоит из нескольких ресурсов, регистрируйте очистку каждого сразу после создания. Аварийное убийство процесса не гарантирует teardown. Обычное исключение подключения отображается как ERROR подготовки, а не как успешный или выполненный тест.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее