Тестирование Django - Доступ к сайту с аутентифицированным пользователем
Я пытаюсь сделать модульный тест для доступа к 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})
- в
setUp()
вы создаете пользователя без имени пользователя - в
test_portfolio_url()
вы пытаетесь войти с именем пользователя, но используете email. - в
setUp()
, вам не нужно вызыватьuser.save()
- вызовcreate_user()
уже сохраняет пользователя .