diff --git a/pypro/base/templates/base/base.html b/pypro/base/templates/base/base.html index f4a1424..e21c6c9 100644 --- a/pypro/base/templates/base/base.html +++ b/pypro/base/templates/base/base.html @@ -24,12 +24,13 @@
diff --git a/pypro/base/tests/test_login.py b/pypro/base/tests/test_login.py index e6528cb..70ba7d8 100644 --- a/pypro/base/tests/test_login.py +++ b/pypro/base/tests/test_login.py @@ -2,6 +2,8 @@ from django.urls import reverse from model_mommy import mommy +from pypro.django_assertions import assert_contains, assert_not_contains + @pytest.fixture def resp(client, db): @@ -30,3 +32,37 @@ def resp_post(client, usuario): def test_login_redirect(resp_post): assert resp_post.status_code == 302 assert resp_post.url == reverse('modulos:indice') + + +@pytest.fixture +def resp_home(client, db): + return client.get(reverse('base:home')) + + +def test_botao_entrar_disponivel(resp_home): + assert_contains(resp_home, 'Entrar') + + +def test_link_de_login_disponivel(resp_home): + assert_contains(resp_home, reverse('login')) + + +@pytest.fixture +def resp_home_com_usuario_logado(client_com_usuario_logado, db): + return client_com_usuario_logado.get(reverse('base:home')) + + +def test_botao_entrar_indisponivel(resp_home_com_usuario_logado): + assert_not_contains(resp_home_com_usuario_logado, 'Entrar') + + +def test_link_de_login_indisponivel(resp_home_com_usuario_logado): + assert_not_contains(resp_home_com_usuario_logado, reverse('login')) + + +def test_botao_sair_disponivel(resp_home_com_usuario_logado): + assert_contains(resp_home_com_usuario_logado, 'Sair') + + +def test_nome_usuario_logado_disponivel(resp_home_com_usuario_logado, usuario_logado): + assert_contains(resp_home_com_usuario_logado, usuario_logado.first_name) diff --git a/pypro/conftest.py b/pypro/conftest.py new file mode 100644 index 0000000..b6918c8 --- /dev/null +++ b/pypro/conftest.py @@ -0,0 +1,14 @@ +import pytest +from model_mommy import mommy + + +@pytest.fixture +def usuario_logado(db, django_user_model): + usuario_modelo = mommy.make(django_user_model, first_name='Fulano') + return usuario_modelo + + +@pytest.fixture +def client_com_usuario_logado(usuario_logado, client): + client.force_login(usuario_logado) + return client diff --git a/pypro/django_assertions.py b/pypro/django_assertions.py index 1d5f949..d49b4e4 100644 --- a/pypro/django_assertions.py +++ b/pypro/django_assertions.py @@ -3,3 +3,4 @@ _test_case = TestCase() assert_contains = _test_case.assertContains +assert_not_contains = _test_case.assertNotContains