Код: Выделить всё
app = Flask(__name__)
app.debug = True
app.config(...)
app.config(...)
api = Api(app)
api.add_resource(resources.Registration, '/registration')
api.add_resource(...)
api.add_resource(...)
По сути, вы создаете все свое приложение как модуль, который можно импортировать, и этот модуль является фабрикой. Итак, __init__.py имеет функцию create_app, которая создает ваше приложение (https://github.com/pallets/flask/blob/1 ... laskr/init< /strong>.py). Я думаю, что это автоматически вызывается, когда модуль импортируется основным приложением во время нормальной работы, но его также можно вызвать явно в conftest.py (https://github.com/pallets/flask/blob/1.0.2/examples /tutorial/tests/conftest.py), который, я думаю (?), автоматически вызывается как часть запуска pytest.
Так что мой вопрос на самом деле довольно красивый. просто: есть ли достойный как мы можем запустить некоторые тесты pytest без рефакторинга кода нашего основного приложения в заводской модуль? Я не хочу слишком сильно касаться основного приложения... Я бы хотел оставить его как очень простую настройку, как мой код в начале этого вопроса.
Другими словами, это базовая настройка приложения в conftest.py руководства после удаления данных из БД:
Код: Выделить всё
@pytest.fixture
def app():
app = create_app({
'TESTING': True,
'DATABASE': db_path,
})
yield app
Извините, что это так просто. - ни тестирование, ни импортные заявления не являются моими сильными сторонами.
Подробнее здесь: https://stackoverflow.com/questions/560 ... create-app
Мобильная версия