消息的Django 1.9单元测试错误,但我看不到1.10.4和1.8的错误 [英] Django 1.9 unittest error for messages but i dont see the error for 1.10.4 and 1.8
问题描述
测试失败,并在Django 1.9 env中出现错误,,但测试在1.10.4和1.8中运行得很好.有人可以在这里放点灯光吗!
The test fails with the error in Django 1.9 env, but tests run perfectly well in 1.10.4 and 1.8. Can someone throw some light here !
这是错误
add_message 引发MessageFailure('您必须先安装' MessageFailure:如果不安装django.contrib.messages.middleware.MessageMiddleware
add_message raise MessageFailure('You cannot add messages without installing ' MessageFailure: You cannot add messages without installing django.contrib.messages.middleware.MessageMiddleware
检查 https://travis-ci.org/invaana/Hydronium/builds/182190626 查看完整错误
views.py
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':'rrmerugu@gmail.com', 'text': 'im good' })
self.assertIn('Operation Successful', res.content)
def test_contactform_invalid(self):
res = self.client.post(reverse('contact'), {'name':'Ravi','email':'rrmerugu@gmail.com', 'text': '' })
self.assertIn('Message not sent', res.content)
推荐答案
显然,
MIDDLEWARE_CLASSES用于1.9、1.8
MIDDLEWARE_CLASSES is used in 1.9, 1.8
MIDDLEWARE在1.10.4中使用.
MIDDLEWARE is used in 1.10.4.
为了使两者兼容,我在settings.py
To make the middleware compatible for both, I used the following code in 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',
]
这篇关于消息的Django 1.9单元测试错误,但我看不到1.10.4和1.8的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!