Я настроил мое пирамиду приложения для того, чтобы иметь user
объект, прикрепленный к request
, когда он был идентифицирован после official tutorial. Пока все хорошо ... но пока он работает отлично, и я могу проверить его с помощью браузера, я не понимаю, почему в тестах веб-тестирования user
не привязан к запросу. Я настроил мой тестовый класс таким образом:Пирамиды с WebTest
from my_pyramid_app import main as make_app
from webtest.app import TestApp
from pyramid import testing
class LoginTestCase(TestCase):
def setUp(self):
self.config = testing.setUp()
self.app = TestApp(make_app({}))
И в тесте:
# submit valid login data to /login and expect redirect to "next"
response = self.app.post('/login', data, status=302)
redirect = response.follow()
Он работает, как ожидалось, пользователь получает проверку подлинности и перенаправляется на пути, указанному в «следующий», но redirect.request
не содержит user
. Зачем? Что мне делать?
пс. documentation of webtest говорит:
Лучший способ для имитации аутентификации, если ваше приложение выглядит в окруже [ «REMOTE_USER»], чтобы увидеть, если кто-то проходит проверку подлинности. Тогда вы можете просто установить это значение, как:
app.get ('/' секрет, extra_environ = Dict (REMOTE_USER = 'боб'))
, но если честно, это звучит demential мне:/(я имею в виду, если я определяю переменную вручную какой смысл теста ?!)
У меня нет ответа на вашу проблему, но Cookbook Community Cookbook не является «официальной документацией». Это коллективная коллекция рецептов. Официальную документацию можно найти по адресу: http://docs.pylonsproject.org/projects/pyramid/en/latest/ –
Какой механизм должен поддерживать пользователь по отдельным запросам? В обычном веб-сервере вы обычно делаете это с помощью сеансов, файлов cookie и т. Д. –