Контекстное тестирование базы данных приложения

Как я могу структурировать свой проект колбы так, чтобы мои модели могли знать, если TESTING включен (и, следовательно, использовать тестовую базу данных), не имея дело с контекстом приложения или не знакомы с ним.

Я разрабатываю это как проект с открытым исходным кодом, поэтому источник может пролить некоторый свет на это: https://github.com/nficano/jotonce.com/blob/master/jotonce/messages/models.py

1 ответ

Решение

Я думаю, что вы столкнулись с этой проблемой, потому что вы не предоставляете пользователям способ указать конфигурацию во время выполнения. Вместо этого, manager.py получает любые настройки, указанные в файле settings.py, не обращаясь к тем настройкам, которые мог указать конечный пользователь.

Так как у вас есть factory.py, вы могли бы потенциально импортировать current_app из Flask (при условии, что ваши функции БД вызываются в контексте приложения) и используйте там значение настроек. Если это вариант для вас, Flask предлагает несколько хороших советов для обработки конфигурации.

Если вы используете это вне контекста вашего приложения, я не думаю, что factory.py в настоящее время структурированный собирается работать на вас. Вам нужно будет обработать свою собственную конфигурацию вручную.

Вы можете взглянуть на https://github.com/Robpol86/Flask-Large-Application-Example/blob/master/pypi_portal/application.py для примера большого проекта колбы, который использует фабрику приложений с различными значениями конфигурации Что ж.

Удачи и счастливых праздников!

Другие вопросы по тегам