Я пытаюсь написать несколько модульных тестов для своего флеш-приложения, которое использует OpenID для аутентификации. Поскольку кажется, что нет возможности войти в тестовый клиент через OpenID (я задал этот вопрос, но он не получил никаких ответов: Flask OpenID unittest), я думал переопределить g.user в моем тесте, поэтому я попробовал фрагмент кода из http://flask.pocoo.org/docs/testing/#faking-resources-and-context, и он работает должным образом.
К сожалению, при использовании flask-login g.user переопределяется в оболочке before_request, которая устанавливает
g.user = current_user
current_user анонимен, поэтому мой тестовый пример не работает. Одно из исправлений - выполнять код оболочки before_request только в тестовом режиме, но кажется неуместным, что вам нужно добавить логику, специфичную для тестирования, в производственный код. Я тоже пробовал возиться с контекстом запроса, но в конечном итоге g.user все равно переопределяется. Есть идеи по поводу чистого способа решить эту проблему?