Skip to content

Commit

Permalink
Make data_assinatura_tcr not nullable (#129)
Browse files Browse the repository at this point in the history
* Apply black formatter

* Make data_assinatura_tcr nullable in db to be consistent with docs

* Add test for sending a null data_assinatura_tcr in Participante

* Disallow a null data_assinatura_tcr in Participante
  • Loading branch information
augusto-herrmann authored Oct 3, 2024
1 parent 07c0400 commit 505ec58
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -388,13 +388,13 @@ class PlanoTrabalho(Base):
origem_unidade,
cod_unidade_autorizadora,
matricula_siape,
cod_unidade_lotacao_participante
cod_unidade_lotacao_participante,
],
[
"participante.origem_unidade",
"participante.cod_unidade_autorizadora",
"participante.matricula_siape",
"participante.cod_unidade_lotacao"
"participante.cod_unidade_lotacao",
],
),
UniqueConstraint(
Expand Down
2 changes: 1 addition & 1 deletion src/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -545,7 +545,7 @@ class ParticipanteSchema(BaseModel):
title="Modalidade e regime de execução do trabalho",
description=Participante.modalidade_execucao.comment,
)
data_assinatura_tcr: Optional[PastDatetime] = Field(
data_assinatura_tcr: PastDatetime = Field(
title="Data de assinatura do TCR",
description=Participante.data_assinatura_tcr.comment,
)
Expand Down
13 changes: 13 additions & 0 deletions tests/participantes_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,19 @@ def test_create_participante_invalid_modalidade_execucao(
for error in response.json().get("detail")
)

def test_create_participante_data_assinatura_tcr_not_null(self):
"""Tenta criar um participante com valor nulo para o campo
data_assinatura_tcr.
"""
input_part = self.input_part.copy()
input_part["data_assinatura_tcr"] = None
response = self.put_participante(input_part)
assert response.status_code == status.HTTP_422_UNPROCESSABLE_ENTITY
assert any(
"Input should be a valid datetime" in error["msg"]
for error in response.json().get("detail", [])
)


class TestGetParticipante(BaseParticipanteTest):
"""Testes para a leitura de Participantes."""
Expand Down

0 comments on commit 505ec58

Please sign in to comment.