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:cadastrar_comissao'), {'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:cadastrar_comissao'), {'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.'])