From fa9a7381dc57ba415a417b536ad1b93773258490 Mon Sep 17 00:00:00 2001 From: Eduardo Calil Date: Wed, 11 May 2016 12:19:22 -0300 Subject: [PATCH] Faz com que todos os testes passem --- base/tests/test_login.py | 91 ++++++++++++++++--------------------- base/tests/teststub_urls.py | 10 ++-- protocoloadm/views.py | 2 +- templates/base/login.html | 9 ++-- 4 files changed, 52 insertions(+), 60 deletions(-) mode change 100644 => 100755 base/tests/test_login.py diff --git a/base/tests/test_login.py b/base/tests/test_login.py old mode 100644 new mode 100755 index 8ccd0528a..3fe9301dd --- a/base/tests/test_login.py +++ b/base/tests/test_login.py @@ -1,8 +1,6 @@ # -*- coding: utf-8 -*- import pytest from django.contrib.auth.models import User -from django.test.html import parse_html as html - pytestmark = pytest.mark.django_db @@ -14,15 +12,15 @@ def user(): def test_login_aparece_na_barra_para_usuario_nao_logado(client): response = client.get('/') - assert 'Login' in str(response.content) + assert 'Login' in str(response.content) def test_username_do_usuario_logado_aparece_na_barra(client, user): assert client.login(username='jfirmino', password='123') response = client.get('/') - assert 'Login' not in str(response.content) - assert 'jfirmino' in response.content - assert 'Sair' in str(response.content) + assert 'Login' not in str(response.content) + assert 'jfirmino' in str(response.content) + assert 'Sair' in str(response.content) def test_nome_completo_do_usuario_logado_aparece_na_barra(client, user): @@ -32,49 +30,40 @@ def test_nome_completo_do_usuario_logado_aparece_na_barra(client, user): user.save() assert client.login(username='jfirmino', password='123') response = client.get('/') - assert 'Login' not in str(response.content) + assert 'Login' not in str(response.content) assert 'Joao Firmino' in str(response.content) - assert 'Sair' in str(response.content) - - -# @pytest.mark.parametrize("link_login,destino", [ -# # login a partir de uma pagina retorna para ela mesma -# ('/login/?next=/zzzz', 'http://testserver/zzzz'), -# ('/login/?next=/', 'http://testserver/'), -# # login a partir da propria pagina de login redireciona para home -# ('/login/?next=/login/', 'http://testserver/'), -# # link sem destino de retorno (next) redireciona para home -# ('/login/', 'http://testserver/'), -# ]) -# def test_login(app, user, link_login, destino): -# pagina_login = app.get(link_login) -# form = pagina_login.forms['login-form'] -# form['username'] = 'jfirmino' -# form['password'] = '123' -# res = form.submit() - -# assert user.pk == app.session['_auth_user_id'] -# assert res.url == destino - - -# @pytest.mark.urls('home.teststub_urls') -# @pytest.mark.parametrize("link_logout,destino", [ -# # logout a partir de uma pagina retorna para ela mesma -# ('/logout/?next=/zzzz', 'http://testserver/zzzz'), -# ('/logout/?next=/', 'http://testserver/'), -# # logout a partir da propria pagina de logout redireciona para home -# ('/logout/?next=/logout/', 'http://testserver/'), -# # link sem destino de retorno (next) redireciona para home -# ('/logout/', 'http://testserver/'), -# ]) -# def test_logout(client, user, link_logout, destino): -# # com um usuário logado ... -# assert client.login(username='jfirmino', password='123') -# assert user.pk == client.session['_auth_user_id'] - -# # ... acionamos o link de logout -# res = client.get(link_logout, follow=True) -# destino_real = res.redirect_chain[-1][0] - -# assert '_auth_user_id' not in client.session -# assert destino_real == destino + assert 'Sair' in str(response.content) + + +@pytest.mark.urls('base.tests.teststub_urls') +@pytest.mark.parametrize("link_login,destino", [ + # login redireciona para home + ('/login/', '/'), +]) +def test_login(app, user, link_login, destino): + pagina_login = app.get(link_login) + form = pagina_login.forms['login-form'] + form['username'] = 'jfirmino' + form['password'] = '123' + res = form.submit() # login + + assert str(user.pk) == app.session['_auth_user_id'] + assert res.url == destino + + +@pytest.mark.parametrize("link_logout,destino", [ + # logout redireciona para a pagina de login + ('/logout/', '/login/'), +]) +def test_logout(client, user, link_logout, destino): + # com um usuário logado ... + assert client.login(username='jfirmino', password='123') + assert str(user.pk) == client.session['_auth_user_id'] + + # ... acionamos o link de logout + res = client.get(link_logout, follow=True) + + destino_real = res.redirect_chain[-1][0] + + assert '_auth_user_id' not in client.session + assert destino_real == destino diff --git a/base/tests/teststub_urls.py b/base/tests/teststub_urls.py index b244287fc..3a3410f98 100644 --- a/base/tests/teststub_urls.py +++ b/base/tests/teststub_urls.py @@ -1,8 +1,10 @@ from django.conf.urls import patterns, url +from django.views.generic.base import TemplateView from sapl.urls import urlpatterns as original_patterns - -urlpatterns = original_patterns + patterns('', - url(r'^zzzz$', 'home.views.index', name='zzzz'), -) +urlpatterns = original_patterns + patterns('', url(r'^zzzz$', + TemplateView.as_view( + template_name='index.html'), + name='zzzz') + ) diff --git a/protocoloadm/views.py b/protocoloadm/views.py index 19e67e9ba..5f874ef78 100644 --- a/protocoloadm/views.py +++ b/protocoloadm/views.py @@ -4,7 +4,7 @@ from datetime import date, datetime from braces.views import FormValidMessageMixin from django.core.exceptions import ObjectDoesNotExist from django.core.urlresolvers import reverse -from django.db.models import Q, Max +from django.db.models import Max, Q from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ diff --git a/templates/base/login.html b/templates/base/login.html index 5ff0c8044..fb47ff084 100644 --- a/templates/base/login.html +++ b/templates/base/login.html @@ -1,8 +1,9 @@ {% extends "crud/detail.html" %} {% load i18n %} {% block base_content %} - - {% if next %} + + +
@@ -20,7 +21,7 @@

Entrar

-
+ {% csrf_token %}