def test_logout(self): """Тест проверки выхода из системы""" create_test_user() self.client.login(username=TEST_USERNAME, password=TEST_USER_PASSWORD) response = self.client.get(reverse(self.url_name)) self.assertEqual(response.status_code, 200) self.assertContains(response, _('You are logged out')) self.assertContains(response, _('To the posts list')) self.assertFalse(response.context['user'].is_authenticated)
def test_post_list_header_with_authenticated_user(self): """Тест проверяющий шапку страницы списка постов при доступе авторизованного пользователя""" create_test_user() self.client.login(username=TEST_USERNAME, password=TEST_USER_PASSWORD) response = self.client.get(reverse(self.url_name)) self.assertNotContains(response, _('You are logged in as an unauthorized user')) self.assertNotContains(response, _('Login')) self.assertContains(response, _('Welcome to the site')) self.assertContains(response, _('User information')) self.assertContains(response, _('Create post')) self.assertContains(response, _('Creating posts from a file')) self.assertContains(response, _('Logout'))
def test_login_wrong_password(self): """Тест проверяющий невозможность авторизации существующего пользователя c неправильным паролем""" create_test_user() context = { 'username': TEST_USERNAME, 'password': f'{TEST_USER_PASSWORD}a' } response = self.client.post(reverse(self.url_name), context, follow=True) self.assertTrue(response.status_code, 200) self.assertFalse(response.context['form'].is_valid()) self.assertFalse(response.context['user'].is_authenticated)
def test_login(self): """Тест проверяющий авторизацию через страницу login""" create_test_user() context = {'username': TEST_USERNAME, 'password': TEST_USER_PASSWORD} response = self.client.post(reverse(self.url_name), context, follow=True) # важно указать follow=True self.assertTrue(response.context['user'].is_authenticated) # Проверка перенаправления на страницу постов self.assertRedirects(response, expected_url=reverse('post_list'), status_code=302, target_status_code=200)
def setUpTestData(): """Для всех тестов создаётся тестовый пользователь""" create_test_user()
def _create_test_user_and_login(self): """Метод создаёт тестового пользователя и логиниться под ним""" create_test_user() self.client.login(username=TEST_USERNAME, password=TEST_USER_PASSWORD)