Django тест для страницы, которая перенаправляет
Я пытаюсь написать тест для View, который перенаправляет на dashboard, но у меня что-то не получается. Пользователь должен быть аутентифицирован, прежде чем он/она сможет получить доступ к представлению (членство). В моем urls.py у меня есть что-то вроде
...
path('membership/', MembershipView.as_view(), name='membership'),
...
Тогда мой tests.py содержит
class TestApp(TestCase):
def test_that_membership_resolves(self):
client = Client()
response = client.post('/membership/', {
# I then pass the necessary values in a dictionary
...
...
})
self.assertRedirects(response, reverse("src:dashboard"))
Но я получаю ошибку, которая говорит
self.assertEqual(
AssertionError: '/login/?next=%2Fmembership%2F' != '/dashboard'
- /login/?next=%2Fmembership%2F
+ /dashboard
: Response redirected to '/login/?next=/membership/', expected '/dashboard'Expected '/login/?next=/membership/' to equal '/dashboard'.
Я думаю, что он говорит мне сначала войти в систему. У меня уже есть метод test a, который проверяет логин, и тест проходит. Как я могу решить эту проблему?
Тогда просто сначала войдите в систему после установки клиента. Ваше представление работает только при входе в систему, поэтому вам нужно сначала войти в систему?
client.login(email="testuser1@example.com", password="testpass123")
Или любой другой логин пользователя, который работает в вашей тестовой установке