diff --git a/protocoloadm/forms.py b/protocoloadm/forms.py index eee1f450b..4eb1a1c3b 100644 --- a/protocoloadm/forms.py +++ b/protocoloadm/forms.py @@ -162,10 +162,8 @@ class AnularProcoloAdmForm(ModelForm): # (e ele vai falhar pq numero e ano são obrigatórios) if not numero or not ano: return - try: protocolo = Protocolo.objects.get(numero=numero, ano=ano) - if protocolo.anulado: raise forms.ValidationError( _("Protocolo %s/%s já encontra-se anulado") diff --git a/protocoloadm/test_protocoloadm.py b/protocoloadm/test_protocoloadm.py new file mode 100644 index 000000000..4d0dcd1b6 --- /dev/null +++ b/protocoloadm/test_protocoloadm.py @@ -0,0 +1,70 @@ +import pytest +from django.core.urlresolvers import reverse +from django.core.files.uploadedfile import SimpleUploadedFile +from .views import AnularProtocoloAdmView +from .forms import AnularProcoloAdmForm +from .models import Protocolo +from model_mommy import mommy + +from django.utils.translation import ugettext_lazy as _ + + +@pytest.mark.django_db(transaction=False) +def test_anular_protocolo_acessivel(client): + response = client.get(reverse('anular_protocolo')) + assert response.status_code == 200 + + +@pytest.mark.django_db(transaction=False) +def test_form_anular_protocolo_inexistente(): + form = AnularProcoloAdmForm({'numero': '1', + 'ano': '2016', + 'justificativa_anulacao': 'TESTE'}) + assert form.is_valid() == False + assert form.errors['__all__'] == [_("Protocolo 1/2016 não existe")] + + +@pytest.mark.django_db(transaction=False) +def test_form_anular_protocolo_valido(): + protocolo = mommy.make(Protocolo, numero='1', ano='2016', anulado=False) + form = AnularProcoloAdmForm({'numero': '1', + 'ano': '2016', + 'justificativa_anulacao': 'TESTE'}) + assert form.is_valid() == True + +@pytest.mark.django_db(transaction=False) +def test_form_anular_protocolo_campos_obrigatorios(): + protocolo = mommy.make(Protocolo, numero='1', ano='2016', anulado=False) + + # numero ausente + form = AnularProcoloAdmForm({'numero': '', + 'ano': '2016', + 'justificativa_anulacao': 'TESTE'}) + assert form.is_valid() == False + assert len(form.errors) == 1 + assert form.errors['numero'] == [_('Este campo é obrigatório.')] + + # ano ausente + form = AnularProcoloAdmForm({'numero': '1', + 'ano': '', + 'justificativa_anulacao': 'TESTE'}) + assert form.is_valid() == False + assert len(form.errors) == 1 + assert form.errors['ano'] == [_('Este campo é obrigatório.')] + + # ano ausente + form = AnularProcoloAdmForm({'numero': '1', + 'ano': '2016', + 'justificativa_anulacao': ''}) + assert form.is_valid() == False + assert len(form.errors) == 1 + assert form.errors['justificativa_anulacao'] == [_('Este campo é obrigatório.')] + + +@pytest.mark.django_db(transaction=False) +def test_form_anular_protocolo_anulado(): + protocolo = mommy.make(Protocolo, numero='1', ano='2016', anulado=True) + form = AnularProcoloAdmForm({'numero': '1', + 'ano': '2016', + 'justificativa_anulacao': 'TESTE'}) + assert form.errors['__all__'] == [_("Protocolo 1/2016 já encontra-se anulado")]