# coding=utf-8 from django.contrib import auth as django_auth from django.test import Client from django.test import TestCase from django.urls import reverse from functions import create_user from web.models import Worker class TestLoginView(TestCase): def test_login(self): self.client = Client() user = create_user() password = 'top_secret' username = user.username login_url = reverse('web.views.login') self.assertFalse(django_auth.get_user(self.client).is_authenticated()) response = self.client.post(login_url, data={'username': username, 'password': password}, follow=True) self.assertEqual(200, response.status_code) self.assertTrue(django_auth.get_user(self.client).is_authenticated()) worker = Worker.get_by_user(user) self.assertIsNotNone(worker) worker.last_name = 'Grouès' worker.save() response = self.client.post(login_url, data={'username': username, 'password': password}, follow=True) self.assertEqual(200, response.status_code) def test_login_failed(self): self.client = Client() user = create_user() username = user.username login_url = reverse('web.views.login') response = self.client.post(login_url, data={'username': username, 'password': 'wrong_password'}, follow=False) self.assertEqual(302, response.status_code) self.assertEqual('/login?error=login_failed', response.url) self.assertFalse(django_auth.get_user(self.client).is_authenticated()) def test_logout(self): self.test_login() self.client.get(reverse('web.views.logout')) self.assertFalse(django_auth.get_user(self.client).is_authenticated())