【发布时间】:2021-12-09 18:46:35
【问题描述】:
我正在尝试对经过身份验证的用户 url 访问进行单元测试,目前我正在尝试对用户进行身份验证,但我无法这样做...
Test.py
def setUp(self):
self.user = User.objects.create_user(email='test@testmail.com', password='test_password', is_staff=True)
self.user.save()
self.client = Client()
def test_portfolio_url(self):
self.client.login(username='test@testmail.com', password='test_password')
url = reverse('portfolio')
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
self.assertEqual(resolve(url).func, portfolio)
self.assertTemplateUsed(response, 'portfolio.html')
views.py
@login_required(login_url='login')
def portfolio(request, user_id=None):
if user_id and request.user.is_staff:
user = User.objects.get(id=user_id)
else:
...
return render(request, 'portfolio.html', {'portfolio': portfolio_data})
这是我想在登录时得到的响应
【问题讨论】:
-
您能提供更多信息吗?你看到什么错误?回应是什么? This 可能会有所帮助。
-
我应该得到的响应是 200(页面呈现),但我收到 302(由于用户未通过身份验证而重定向)
-
您创建的用户没有用户名(只有电子邮件),但您尝试使用用户名登录。
标签: django django-tests