Sistema de Apoio ao Processo Legislativo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

151 lines
5.5 KiB

import pytest
from django.core.urlresolvers import reverse
from model_mommy import mommy
from .models import (Dependente, Filiacao, Legislatura, Mandato, Parlamentar,
Partido, TipoDependente)
@pytest.mark.django_db(transaction=False)
def test_cadastro_parlamentar(client):
legislatura = mommy.make(Legislatura)
url = reverse('parlamentares:parlamentar_create')
response = client.get(url)
assert response.status_code == 200
response = client.post(url, {'nome_completo': 'Teresa Barbosa',
'nome_parlamentar': 'Terezinha',
'sexo': 'F',
'ativo': 'True',
'legislatura': legislatura.id,
'data_expedicao_diploma': '2001-01-01'},
follow=True)
[parlamentar] = Parlamentar.objects.all()
assert parlamentar.nome_parlamentar == 'Terezinha'
assert parlamentar.sexo == 'F'
assert parlamentar.ativo is True
# o primeiro mandato é criado
[mandato] = Mandato.objects.all()
assert mandato.parlamentar == parlamentar
assert str(mandato.data_expedicao_diploma) == '2001-01-01'
assert mandato.legislatura == legislatura
assert mandato.data_fim_mandato == legislatura.data_fim
@pytest.mark.django_db(transaction=False)
def test_incluir_parlamentar_errors(client):
url = reverse('parlamentares:parlamentar_create')
response = client.post(url)
erros_esperados = {campo: ['Este campo é obrigatório.']
for campo in ['legislatura',
'data_expedicao_diploma',
'nome_parlamentar',
'nome_completo',
'sexo',
]}
assert response.context_data['form'].errors == erros_esperados
@pytest.mark.django_db(transaction=False)
def test_filiacao_submit(client):
mommy.make(Parlamentar, pk=14)
mommy.make(Partido, pk=32)
client.post(reverse('parlamentares:parlamentar_filiacao',
kwargs={'pk': 14}),
{'partido': 32,
'data': '2016-03-22',
'salvar': 'salvar'},
follow=True)
filiacao = Filiacao.objects.first()
assert 32 == filiacao.partido.pk
@pytest.mark.django_db(transaction=False)
def test_dependente_submit(client):
mommy.make(Parlamentar, pk=14)
mommy.make(Partido, pk=32)
mommy.make(TipoDependente, pk=3)
client.post(reverse('parlamentares:parlamentar_dependente',
kwargs={'pk': 14}),
{'nome': 'Eduardo',
'tipo': 3,
'sexo': 'M',
'salvar': 'salvar'},
follow=True)
dependente = Dependente.objects.first()
assert 3 == dependente.tipo.pk
assert 'Eduardo' == dependente.nome
@pytest.mark.django_db(transaction=False)
def test_form_errors_dependente(client):
mommy.make(Parlamentar, pk=14)
response = client.post(reverse('parlamentares:parlamentar_dependente',
kwargs={'pk': 14}),
{'salvar': 'salvar'},
follow=True)
assert (response.context_data['form'].errors['nome'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['tipo'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['sexo'] ==
['Este campo é obrigatório.'])
@pytest.mark.django_db(transaction=False)
def test_form_errors_filiacao(client):
mommy.make(Parlamentar, pk=14)
response = client.post(reverse('parlamentares:parlamentar_filiacao',
kwargs={'pk': 14}),
{'partido': '',
'salvar': 'salvar'},
follow=True)
assert (response.context_data['form'].errors['partido'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['data'] ==
['Este campo é obrigatório.'])
@pytest.mark.django_db(transaction=False)
def test_mandato_submit(client):
mommy.make(Parlamentar, pk=14)
mommy.make(Legislatura, pk=5)
client.post(reverse('parlamentares:parlamentar_mandato',
kwargs={'pk': 14}),
{'legislatura': 5,
'data_fim_mandato': '2016-01-01',
'data_expedicao_diploma': '2016-03-22',
'observacao': 'Observação do mandato',
'salvar': 'salvar'},
follow=True)
mandato = Mandato.objects.first()
assert 'Observação do mandato' == mandato.observacao
@pytest.mark.django_db(transaction=False)
def test_form_errors_mandato(client):
mommy.make(Parlamentar, pk=14)
response = client.post(reverse('parlamentares:parlamentar_mandato',
kwargs={'pk': 14}),
{'legislatura': '',
'salvar': 'salvar'},
follow=True)
assert (response.context_data['form'].errors['legislatura'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['data_fim_mandato'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['data_expedicao_diploma'] ==
['Este campo é obrigatório.'])