Django & twill - сеансовые куки не установлены - PullRequest
3 голосов
/ 11 марта 2011

Я тестирую приложение django с twill и django-test-utils , и оно не регистрирует меня.

Я думаю, что это не установка куки сессии django. Я захожу на веб-страницу (в twill), которая вызывает request.session.set_test_cookie(), и после того, как этот звонок возвращается, twill.show_cookies() (который должен распечатать куки), не показывает куки. На другой странице / просмотре request.session.test_cookie_worked() возвращает False.

Как ни странно , другая страница вызывает request.set_cookie(...), чтобы вручную установить cookie, и это работает. twill.show_cookies() показывает это печенье. Итак, некоторые файлы cookie работают, но промежуточное программное обеспечение сеанса просто не работает ...

Что может происходить? Как мне установить cookie сеанса django в twill?

У некоторых других людей были похожие проблемы, пример для пользователей django , комментарий о файлах cookie для другого сценария twill / django

1 Ответ

0 голосов
/ 21 ноября 2011

Как сказал FC, если клиент и сервер - это разные машины с несовпадающим временем (или даже, возможно, часовыми поясами), у вас могут возникнуть проблемы с истечением срока действия файлов cookie.

Я просто дважды проверил код для set_test_cookie(), и, похоже, он устанавливает это значение довольно нормально.Вы уверены, что страница, с которой у вас возникли проблемы, не возвращает ошибку (и, следовательно, не устанавливает test_cookie)?Существует целый ряд способов, которые могут произойти, но не в моей голове:

  • Twill может не отправлять заголовок Host, который требуется вашему приложению
  • Twill может не отправлятьa referer вашему приложению требуется
  • Twill может не поддерживать сжатие / шифрование / multipart / что-то еще
  • Twill может не совсем эмулировать браузер каким-либо другим способом
  • Один издругим промежуточным программам может потребоваться некоторая комбинация перечисленных выше

. Дважды проверьте остальные промежуточные программы.Попробуйте создать пустой проект, который ТОЛЬКО проверяет эту проблему.Пустого проекта с включенным админом должно быть достаточно.Если вам удастся воспроизвести его в минимальной конфигурации, мы сможем помочь вам с поиском ошибки.

...