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.

128 lines
4.5 KiB

import pytest
from django.core.urlresolvers import reverse
from model_mommy import mommy
from parlamentares.models import Filiacao, Parlamentar, Partido
from .models import (CargoComissao, Comissao, Composicao, Participacao,
Periodo, TipoComissao)
def make_composicao(comissao):
periodo = mommy.make(Periodo,
data_inicio='2016-01-01',
data_fim='2016-12-31')
mommy.make(Composicao,
periodo=periodo,
comissao=comissao)
return Composicao.objects.first()
def make_comissao():
tipo = mommy.make(TipoComissao)
mommy.make(Comissao,
tipo=tipo,
nome='Comissão Teste',
sigla='CT',
data_criacao='2016-03-22')
return Comissao.objects.first()
def make_filiacao():
partido = mommy.make(Partido,
nome='Partido Meu',
sigla='PM')
parlamentar = mommy.make(Parlamentar,
nome_parlamentar='Eduardo',
nome_completo='Eduardo',
sexo='M',
ativo=True)
mommy.make(Filiacao,
data='2016-03-22',
parlamentar=parlamentar,
partido=partido)
return Filiacao.objects.first()
@pytest.mark.django_db(transaction=False)
def test_incluir_parlamentar_submit(client):
comissao = make_comissao()
composicao = make_composicao(comissao)
filiacao = make_filiacao()
cargo = mommy.make(CargoComissao,
nome='Cargo',
unico=True)
response = client.post(reverse('comissoes:comissao_parlamentar',
kwargs={'pk': comissao.pk,
'id': composicao.pk}),
{'parlamentar_id': filiacao.pk,
'cargo': cargo.pk,
'data_designacao': '2016-03-22',
'titular': True,
'salvar': 'salvar'},
follow=True)
assert response.status_code == 200
participacao = Participacao.objects.first()
assert participacao.parlamentar == filiacao.parlamentar
assert participacao.cargo.nome == 'Cargo'
assert participacao.composicao == composicao
@pytest.mark.django_db(transaction=False)
def test_incluir_parlamentar_errors(client):
comissao = make_comissao()
composicao = make_composicao(comissao)
response = client.post(reverse('comissoes:comissao_parlamentar',
kwargs={'pk': comissao.pk,
'id': composicao.pk}),
{'salvar': 'salvar'},
follow=True)
assert (response.context_data['form'].errors['parlamentar_id'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['cargo'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['data_designacao'] ==
['Este campo é obrigatório.'])
@pytest.mark.django_db(transaction=False)
def test_incluir_comissao_submit(client):
tipo = mommy.make(TipoComissao,
sigla='T',
nome='Teste')
response = client.post(reverse('comissoes:comissao_create'),
{'tipo': tipo.pk,
'nome': 'Comissão Teste',
'sigla': 'CT',
'data_criacao': '2016-03-22',
'salvar': 'salvar'},
follow=True)
assert response.status_code == 200
comissao = Comissao.objects.first()
assert comissao.nome == 'Comissão Teste'
assert comissao.tipo == tipo
@pytest.mark.django_db(transaction=False)
def test_incluir_comissao_errors(client):
response = client.post(reverse('comissoes:comissao_create'),
{'salvar': 'salvar'},
follow=True)
assert (response.context_data['form'].errors['tipo'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['nome'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['sigla'] ==
['Este campo é obrigatório.'])
assert (response.context_data['form'].errors['data_criacao'] ==
['Este campo é obrigatório.'])