Пример #1
0
 def test_coordenador_geral_lista_detalhe_2_cursos_2_alunos_com_notas(self):
     nome_1 = "joao"
     nome_2 = "maria"
     materias_1 = {"penal": 3}
     materias_2 = {"plantas": 3, "solos": 3}
     cr = 3
     expected = {
         "alunos": [{
             "nome": nome_1,
             "coeficiente rendimento": cr,
             "materias": materias_1,
             "curso": self.curso_1.pega_nome()
         }, {
             "nome": nome_2,
             "coeficiente rendimento": cr,
             "materias": materias_2,
             "curso": self.curso_2.pega_nome()
         }]
     }
     aluno_1 = Aluno(nome_1)
     aluno_2 = Aluno(nome_2)
     aluno_1.inscreve_curso(self.curso_1)
     aluno_2.inscreve_curso(self.curso_2)
     aluno_1.atualiza_materias_cursadas(materias_1)
     aluno_2.atualiza_materias_cursadas(materias_2)
     coordenador = CoordenadorGeral()
     actual = coordenador.listar_detalhe_alunos()
     assert actual == expected
Пример #2
0
 def test_aluno_nao_pode_increver_curso_sem_materias(self):
     curso = Curso(curso_nome_1)
     aluno = Aluno(aluno_nome_1)
     with raises(
             Exception,
             match="Número mínimo que matérias é três. Adicione mais 3"):
         aluno.inscreve_curso(curso)
Пример #3
0
 def test_aluno_so_pode_se_inscrever_um_curso(self,
                                              cria_curso_com_materias):
     expected = "O aluno só pode se inscrever apenas em um curso"
     curso_1 = cria_curso_com_materias
     curso_2 = cria_curso_com_materias
     aluno = Aluno(None)
     aluno.inscreve_curso(curso_1)
     with pytest.raises(Exception, match=expected):
         aluno.inscreve_curso(curso_2)
Пример #4
0
 def test_define_situacao_retorna_aluno_com_situacao_atualizada(
         self, cria_curso_com_materias):
     materias = {materia_nome_1: 8, materia_nome_2: 8, materia_nome_3: 8}
     expected = "aprovado"
     aluno = Aluno(aluno_nome_1)
     aluno.inscreve_curso(cria_curso_com_materias)
     aluno.atualiza_materias_cursadas(materias)
     aluno.define_situacao(Situacao.aprovado.value)
     actual = aluno.pega_situacao()
     assert actual == expected
Пример #5
0
 def test_coordenador_curso_2_nao_pode_listar_alunos_curso_1(self):
     expected = {"alunos": []}
     aluno = Aluno("maria")
     curso = Curso("fisica")
     curso.atualiza_materias(Materia("optica"))
     curso.atualiza_materias(Materia("mecanica"))
     curso.atualiza_materias(Materia("eletrica"))
     coordenador_2 = CoordenadorCurso(curso)
     aluno.inscreve_curso(self.curso)
     actual = coordenador_2.listar_detalhe_alunos()
     assert actual == expected
Пример #6
0
 def test_coordenador_geral_lista_detalhes_alunos_quando_um_aluno(self):
     nome = "maria"
     materias = {"civil": 6}
     cr = 6
     expected = {
         "alunos": [{
             "nome": nome,
             "materias": materias,
             "coeficiente rendimento": cr,
             "curso": self.curso_1.pega_nome()
         }]
     }
     aluno = Aluno("maria")
     aluno.inscreve_curso(self.curso_1)
     aluno.atualiza_materias_cursadas(materias)
     coordenador = CoordenadorGeral()
     actual = coordenador.listar_detalhe_alunos()
     assert actual == expected
Пример #7
0
 def test_coordenador_geral_lista_detalhes_novo_curso(self):
     nome = "mario"
     curso = "patologia"
     aluno = Aluno(nome)
     materias = {"virus": 6}
     expected = {
         "alunos": [{
             "nome": nome,
             "coeficiente rendimento": 6,
             "materias": materias,
             "curso": curso
         }]
     }
     coordenador = CoordenadorGeral()
     curso_novo = Curso(curso)
     curso_novo.atualiza_materias(Materia("bacterias"))
     curso_novo.atualiza_materias(Materia("virus"))
     curso_novo.atualiza_materias(Materia("vermes"))
     aluno.inscreve_curso(curso_novo)
     aluno.atualiza_materias_cursadas(materias)
     actual = coordenador.listar_detalhe_alunos()
     assert actual == expected
Пример #8
0
 def test_coordenador_geral_lista_detalhes_quando_2_cursos_com_alunos(self):
     nome_1 = "joao"
     nome_2 = "maria"
     expected = {
         "alunos": [{
             "nome": nome_1,
             "coeficiente rendimento": 0,
             "materias": {},
             "curso": self.curso_1.pega_nome()
         }, {
             "nome": nome_2,
             "coeficiente rendimento": 0,
             "materias": {},
             "curso": self.curso_2.pega_nome()
         }]
     }
     aluno_1 = Aluno(nome_1)
     aluno_2 = Aluno(nome_2)
     aluno_1.inscreve_curso(self.curso_1)
     aluno_2.inscreve_curso(self.curso_2)
     coordenador = CoordenadorGeral()
     actual = coordenador.listar_detalhe_alunos()
     assert actual == expected
    def test_faculdade_com_dois_alunos_aprovados_e_um_reprovado_no_curso(self):
        '''
        Faculdade de exatas. Tem 3 alunos e 5 cursos. Dois alunos fazem matérias iguais e um não faz
        nenhuma matéria com os demais.
        '''
        CatalogoCurso.limpa_catalogo()
        pedro = Aluno("Pedro")
        jose = Aluno("Jose")
        tiago = Aluno("Tiago")
        coordenador_geral = CoordenadorGeral()

        fisica = Curso("Fisica")
        fisica.atualiza_materias(Materia("Ótica"))
        fisica.atualiza_materias(Materia("Mecânica"))
        fisica.atualiza_materias(Materia("Elátrica"))
        coordenador_fisica = CoordenadorGeral(fisica)

        matematica = Curso("Matematica")
        matematica.atualiza_materias(Materia("Geometria"))
        matematica.atualiza_materias(Materia("Cálculo"))
        matematica.atualiza_materias(Materia("Algebra"))
        coordenador_matematica = CoordenadorGeral(matematica)

        informatica = Curso("Informatica")
        informatica.atualiza_materias(Materia("Programação"))
        informatica.atualiza_materias(Materia("Dados"))
        informatica.atualiza_materias(Materia("Hardware"))
        coordenador_informatica = CoordenadorGeral(informatica)

        engenharia_civil = Curso("Engenharia Civil")
        engenharia_civil.atualiza_materias(Materia("Estrutura"))
        engenharia_civil.atualiza_materias(Materia("Concreto armado"))
        engenharia_civil.atualiza_materias(Materia("Hidráulica"))
        coordenador_engenharia_civil = CoordenadorGeral(engenharia_civil)

        eletronica = Curso("Eletrônica")
        eletronica.atualiza_materias(Materia("Robótica"))
        eletronica.atualiza_materias(Materia("Chips"))
        eletronica.atualiza_materias(Materia("Circuitos"))
        coordenador_eletronica = CoordenadorGeral(eletronica)

        pedro.inscreve_curso(eletronica)
        jose.inscreve_curso(eletronica)
        tiago.inscreve_curso(engenharia_civil)

        print("\nPrimeiro semestre")
        pedro.atualiza_materias_cursadas({"Robótica": 10})
        jose.atualiza_materias_cursadas({"Robótica": 6})
        tiago.atualiza_materias_cursadas({"Concreto armado": 8})

        print("\nRelatório geral")
        print(coordenador_geral.listar_detalhe_alunos())
        print("\nRelatório dos cursos")
        print(coordenador_eletronica.listar_detalhe_alunos())
        print(coordenador_engenharia_civil.listar_detalhe_alunos())
        print(coordenador_fisica.listar_detalhe_alunos())
        print(coordenador_informatica.listar_detalhe_alunos())
        print(coordenador_matematica.listar_detalhe_alunos())

        print("\nSegundo semestre")
        pedro.atualiza_materias_cursadas({"Chips": 9})
        jose.atualiza_materias_cursadas({"Robótica": 9})
        tiago.atualiza_materias_cursadas({"Estrutura": 0})

        print("\nRelatório geral")
        print(coordenador_geral.listar_detalhe_alunos())
        print("\nRelatório dos cursos")
        print(coordenador_eletronica.listar_detalhe_alunos())
        print(coordenador_engenharia_civil.listar_detalhe_alunos())
        print(coordenador_fisica.listar_detalhe_alunos())
        print(coordenador_informatica.listar_detalhe_alunos())
        print(coordenador_matematica.listar_detalhe_alunos())

        print("\nTerceiro semestre")
        pedro.atualiza_materias_cursadas({"Circuitos": 7})
        jose.atualiza_materias_cursadas({"Chips": 9})
        tiago.atualiza_materias_cursadas({"Estrutura": 10})

        print("\nRelatório geral")
        print(coordenador_geral.listar_detalhe_alunos())
        print("\nRelatório dos cursos")
        print(coordenador_eletronica.listar_detalhe_alunos())
        print(coordenador_engenharia_civil.listar_detalhe_alunos())
        print(coordenador_fisica.listar_detalhe_alunos())
        print(coordenador_informatica.listar_detalhe_alunos())
        print(coordenador_matematica.listar_detalhe_alunos())
        pedro.calcula_situacao()
        jose.calcula_situacao()
        tiago.calcula_situacao()
        print(pedro.pega_situacao())
        print(jose.pega_situacao())
        print(tiago.pega_situacao())

        print("\nQuarto semestre")
        jose.atualiza_materias_cursadas({"Circuitos": 9.7})
        tiago.atualiza_materias_cursadas({"Hidráulica": 3})

        print("\nRelatório geral")
        print(coordenador_geral.listar_detalhe_alunos())
        print("\nRelatório dos cursos")
        print(coordenador_eletronica.listar_detalhe_alunos())
        print(coordenador_engenharia_civil.listar_detalhe_alunos())
        print(coordenador_fisica.listar_detalhe_alunos())
        print(coordenador_informatica.listar_detalhe_alunos())
        print(coordenador_matematica.listar_detalhe_alunos())
        pedro.calcula_situacao()
        jose.calcula_situacao()
        tiago.calcula_situacao()
        print(pedro.pega_situacao())
        print(jose.pega_situacao())
        print(tiago.pega_situacao())
Пример #10
0
 def _cria_aluno_no_curso(self, nome_aluno, curso, materias):
     aluno = Aluno(nome_aluno)
     aluno.inscreve_curso(curso)
     aluno.atualiza_materias_cursadas(materias)