2016-12-08 6 views
0

Тест с ошибкой в ​​Django 1.9 env, , но тесты отлично работают в 1.10.4 и 1.8. Может кто-то пролить свет здесь!Django 1.9 unittest error для сообщений, но я не вижу ошибки для 1.10.4 и 1.8

Здесь ошибка

add_message рейз MessageFailure ('Вы не можете добавлять сообщения без установки' MessageFailure: Вы не можете добавлять сообщения без установки django.contrib.messages.middleware.MessageMiddleware

Проверка https://travis-ci.org/invaana/Hydronium/builds/182190626 для полных ошибок

views.p у

def contact(request): 
    if request.method == "POST": 
     form = ContactForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      messages.success(request, 'Operation Successful! This is demo. Im not sending any messages') 
     else: 
      form.errors 
      messages.error(request, 'Message not sent, Please fix the errors!.') 
    else: 
     form = ContactForm() 
    return render(request, 'pages/contact.html', {'form': form}) 

tests.py

def test_contactform_valid(self): 
    res = self.client.post(reverse('contact'), {'name':'Ravi','email':'[email protected]', 'text': 'im good' }) 
    self.assertIn('Operation Successful', res.content) 

def test_contactform_invalid(self): 
    res = self.client.post(reverse('contact'), {'name':'Ravi','email':'[email protected]', 'text': '' }) 
    self.assertIn('Message not sent', res.content) 
+0

Посмотрите на этот ответ https://stackoverflow.com/questions/11938164/why-dont-my-django -unittests-ноу-что-messagemiddleware-это установленная –

ответ

0

По-видимому,

MIDDLEWARE_CLASSES используется в 1,9, 1,8

MIDDLEWARE используется в 1.10.4.

Для того, чтобы промежуточное программное обеспечение совместимо для обоих, я использовал следующий код в settings.py

MIDDLEWARE = 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.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
]