Ошибка тестового примера Django У объекта WSGIRequest нет атрибута «сеанс»
3648 просмотра
1 ответ
Я пытаюсь написать несколько тестов для моего приложения django, и оно выдает ошибку:
File "/Users/croberts/.virtualenvs/litem/lib/python3.4/site-packages/django/contrib/auth/__init__.py", line 101, in login
if SESSION_KEY in request.session:
AttributeError: 'WSGIRequest' object has no attribute 'session'
Вот мой код, который я пытаюсь запустить:
class SimpleTest(TestCase):
def setUp(self):
self.request_factory = RequestFactory()
def test_signup(self):
request = self.request_factory.post("/signup/", {
"email": "email@email.com",
"password": "password",
"password-confirm": "password",
"firm": "big law firm"})
response = signup_user(request)
user = User.objects.get(email="email@email.com")
self.assertEqual(user.username, "email@email.com")
self.assertEqual(user.firm, "big law firm")
self.assertEqual(response.status_code, 302) #if it's successful it redirects.
Вот мое промежуточное ПО:
MIDDLEWARE_CLASSES = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
и мои установленные приложения:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'patents',
]
Автор: Chase Roberts
Источник
Размещён: 20.10.2019 03:07
Ответы (1)
10 плюса
Решение
Попробуйте использовать тестовый клиент вместо фабрики запросов. Это также дает преимущество тестирования вашего URL-конфигурации.
class SimpleTest(TestCase):
def test_signup(self):
response = self.client.post("/signup/", {
"email": "email@email.com",
"password": "password",
"password-confirm": "password",
"firm": "big law firm"})
user = User.objects.get(email="email@email.com")
self.assertEqual(user.username, "email@email.com")
self.assertEqual(user.firm, "big law firm")
self.assertEqual(response.status_code, 302) #if it's successful it redirects.
Автор: Alasdair
Размещён: 26.02.2016 09:08
Вопросы из категории :
- python Обработка XML в Python
- python Как я могу использовать Python itertools.groupby ()?
- python Python: На какой ОС я работаю?
- python Как я могу создать непосредственно исполняемое кроссплатформенное приложение с графическим интерфейсом на Python?
- django Использование виджетов времени / даты в Django в произвольной форме
- django Django + FCGID на Fedora Core 9 - что мне не хватает?
- django Грязные поля в джанго
- django Есть ли простой способ заполнить SlugField из CharField?
- django-sessions Django: настройка сеанса и получение сеансового ключа в том же представлении
- django-sessions Как очистить все переменные сеанса без выхода из системы
- django-sessions Как создать «пустую» сессию в Django?
- django-sessions Как отследить продолжительность сеанса пользователя в Django
- django-wsgi Перенаправить stdout и stderr в файл в Django с помощью wsgi
- django-wsgi Setting up Django on AWS Elastic Beanstalk: WSGIPath not found
- django-wsgi Django перестает работать с RuntimeError: populate () не реентерабелен
- django-wsgi Django :: OperationalError в / admin / login / не может открыть файл базы данных
- django-tests KeyError: 'HTTP_HOST' при запуске тестов django
- django-tests У объекта 'module' нет атрибута 'commit_unless_managed'
- django-tests Ошибка тестового примера Django У объекта WSGIRequest нет атрибута «сеанс»
- django-tests Тестовый пример для GET API для APIView не работает в djangorestframework