Я пытаюсь написать модульный тест для моей колбы приложения для OpenID, но при вызовеКолба OpenID UnitTest
oid.try_login(<oid provider>, <params>)
Я получаю сообщение об ошибке:
RuntimeError:
<class 'flask.testing.FlaskClient'>
does not support redirect to external targets
Так, как каждые хорошие SO, я огляделся по некоторым решениям:
- Поставщик маскировки с использованием расширения колбы NoExtRef. Я не уверен, что это возможно на уровне приложения, так как я предполагаю, что флеш-openid messes связан с urid-адресом (и он просто перенаправил меня на исходную страницу, когда я попробовал). Но это кажется довольно уродливым, так как я делаю изменение кода строго для unittest.
- Создайте свой собственный сервер OID, но это все равно может быть внешним перенаправлением (я попробую это позже, как только я получу отчаяние).
Я предполагаю, что другая альтернатива заключается в том, чтобы игнорировать письменные тесты для входа в систему и просто установить пользователя в Flask.g, используя классную проверку флагов. Но я бы предпочел сохранить тесты модуля входа в систему.
Подозрительный ответ, но этот подход работал очень хорошо. Спасибо, что познакомил меня с патчем обезьян! – rith87