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
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)
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)
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
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
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
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
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())
def _cria_aluno_no_curso(self, nome_aluno, curso, materias): aluno = Aluno(nome_aluno) aluno.inscreve_curso(curso) aluno.atualiza_materias_cursadas(materias)