Я тестирую приложение библиотеки Django для двух типов пользователей: клиентов и сотрудников библиотеки.
Это urls.py
path('dashboard_customer/', views.LoanedBooksByUserListView.as_view(), name='dashboard_customer'),
path('dashboard_staff/', views.LoanedBooksAllListView.as_view(), name='dashboard_staff'),
В моем views.py это представление на основе классов для входа в систему, в котором, если вошедший в систему пользователь является клиентом, то при успешном входе в систему клиент перенаправляется на dashboard_customer, если вошедший в систему пользователь является сотрудником библиотеки, а затемdashboard_staff.
class CustomerLoginView(View):
def post(self, request):
username_r = request.POST['customer_username']
password_r = request.POST['customer_password']
user = authenticate(request, username=username_r, password=password_r)
if user is not None:
# how to write test case to check the below LOC
login(request, user)
if user.is_staff:
return HttpResponseRedirect(reverse('dashboard_staff', args=[]))
else:
return HttpResponseRedirect(reverse('dashboard_customer', args=[]))
else:
return HttpResponseRedirect(reverse('customer_login'))
def get(self, request):
return render(request, 'catalog/customer_login.html')
Это тестовый пример для регистрации пользователя (как клиента, так и сотрудников библиотеки):
class CustomerLoginTestCase(TestCase):
"""
Test case for User Log in
"""
def test_login_view_get(self):
# get request
response = self.client.get(reverse('customer_login'))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'catalog/customer_login.html')
def test_login_view_post_success(self):
# post request
data = {
'customer_username': 'testuser1',
'customer_password': '1X<ISRUkw+tuK',
}
response = self.client.post(reverse('customer_login'), data)
self.assertEqual(response.status_code, 302)
"""
how to check on successful login, the user is redirected to
the appropriate dashboard(dashboard_customer/dashboard_staff) based on if user.is_staff or not?
"""
Как разработать тестовый пример дляпроверяя, что при успешном входе в систему пользователь перенаправляется на 'dashboard_customer', если не user.is_staff, в противном случае, если вошедший в систему пользователь является сотрудником библиотеки, затем перенаправьте на 'dashboard_staff'
Я полный новичок в разработкеконтрольные примеры.