Newer
Older
# 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())