我正在使用pytest-django来测试一些 Django 视图。
我想测试响应上下文是否包含某些值,但它始终是None
.
我的观点:
from django.views.generic import TemplateView
class MyView(TemplateView):
template_name = 'my_template.html'
def get_context_data(self, **kwargs):
context = super(MyView, self).get_context_data(**kwargs)
context['hello'] = 'hi'
return context
我的测试:
def test_context(client):
response = client.get('/test/')
print('status', response.status_code)
print('content', response.content)
print('context', response.context)
如果我使用-s
标志运行它以查看打印语句,则状态代码为200
,并且content
包含呈现的模板,包括"hi"
上下文中的那个。但是context
是None
。
我认为这与django.test.Clientclient
相同,它应该让我看到上下文......所以我错过了什么?
我试过这个答案但得到了
RuntimeError:setup_test_environment() 已被调用,如果不先调用 teardown_test_environment(),则无法再次调用。