fga-eps-mds / 2020.2-CheeryUP

MDS.2020.2-Grupo 7
https://fga-eps-mds.github.io/2020.2-CheeryUP/
GNU General Public License v3.0
0 stars 8 forks source link

103/testes unitarios #118

Closed Abraao1231 closed 3 years ago

Abraao1231 commented 3 years ago

Issues relacionadas:

Tarefas realizadas nesse PR

Descrição:

Descrição do que este requeste irá alterar a forma de cadastro de usuarios e pacientes, irá mudar as configurações básicos do docker e scripts do projeto e também implementar os primeiros testes unitarios do projeto.

Critérios de aceitação.

A pessoa responsável pela review deve explicar através de testes (caso necessário), ou motivo lógico para o PR ser aceito.

DaviMatheus commented 3 years ago

Primeiramente mudamos nosso Docker, ficando mais desenvolvido e mais complexo, mas o q mais sofreu mudança foi o scrpit, deixando ele mais auto explicativo e mais consistente, em que houveram casos que integrantes não conseguiram rodar o projeto usando o comando docker-compose up nem o makeup

Para deixarmos a api mais facil e simples, refatoramos as models e as viewsets usando o model.ViewSet, que possui tudo que tinhamos utlizados em uma view, assim facilitando na hora dos testes, e na visualização da API, sendo assim mais uma boa prática.

Para podermos linkar tivemos que passar por diversas etapas:

class PacienteModelViewSet(viewsets.ModelViewSet): queryset = Paciente.objects.all() serializer_class = PacienteSerializer lookup_field = 'cpf'

def get_psicologo(self): return Psicologo.objects.get(nCRP=self.kwargs['psicologo_nCRP'])

  def get_queryset(self):
      psicologo = self.get_psicologo()
      return Paciente.objects.filter(psicologo=psicologo)

  def perform_create(self, serializer):
      psicologo = self.get_psicologo()
      paciente = serializer.save(psicologo=psicologo)

AGORA INDO PARA A API, entrando no endpoint http://0.0.0.0:8000/api/psicologos/

image

Cadastrando os dois psicologos, e depois procurando e listando indivudualmente atraves do comando lookup_field = 'cNRP' dentro do serializer

image

AGORA INDO PARA A PARTE INTERRESANTE A Linkagem, feita principalmente atraves dos rourtes, o codigo abaixo:

from users.views import PsicologoModelViewSet from paciente.views import PacienteModelViewSet

      router = routers.DefaultRouter()

      router.register(r'psicologos', PsicologoModelViewSet)

      psicologo_router = routers.NestedDefaultRouter(
          router,
          r'psicologos',
          lookup='psicologo'
      )

      psicologo_router.register(r'pacientes', PacienteModelViewSet)

IMPLEMENTAÇÃO DA LINKAGEM

Entrando na url http://0.0.0.0:8000/api/psicologos/nCRP-do-psicologo/pacientes/ ira listar todos os pacientes do psicologo

image

Entrando na url http://0.0.0.0:8000/api/psicologos/nCRP-do-psicologo/pacientes/CPF-do-paciente ira mostrar apenas o paciente que o cpf esta apontando.

image

INICIALIZMOS O TESTES do view.model do usuario psicologo criando uma pasta só para testes