class TestCoordenadorGeral: def setup_method(self, cria_banco): self.catalogo = CatalogoCurso() self.catalogo.limpa_catalogo() self.curso_1 = Curso("direito") self.curso_1.atualiza_materias(Materia("civil")) self.curso_1.atualiza_materias(Materia("penal")) self.curso_1.atualiza_materias(Materia("filosofia")) self.curso_2 = Curso("agricola") self.curso_2.atualiza_materias(Materia("solos")) self.curso_2.atualiza_materias(Materia("plantas")) self.curso_2.atualiza_materias(Materia("animais")) self.curso_3 = Curso("engenharia") self.curso_3.atualiza_materias(Materia("estrutura")) self.curso_3.atualiza_materias(Materia("mecanica")) self.curso_3.atualiza_materias(Materia("concreto")) def teardown_method(self, method): self.catalogo.limpa_catalogo() self.curso_1 = None self.curso_2 = None self.curso_3 = None def test_define_id_retorna_coordenador_com_id_atualizado(self): expected = 1 coordenador = CoordenadorGeral().define_id(expected) actual = coordenador.pega_id() 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_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_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_coordenador_geral_lista_detalhes_quando_dois_cursos(self): expected = {"alunos": []} coordenador = CoordenadorGeral() actual = coordenador.listar_detalhe_alunos() assert actual == expected def test_coordenador_geral_lista_detalhes_quando_dois_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_1.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_1) coordenador = CoordenadorGeral() actual = coordenador.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_os_cursos_podem_ter_nomes_iguais(self): curso_1 = Curso("adm") curso_2 = Curso("adm") actual_1 = curso_1.pega_nome() actual_2 = curso_2.pega_nome() assert actual_1 == actual_2
def test_todo_curso_deve_ter_nome(self): expected = "administra" curso = Curso(nome=expected) actual = curso.pega_nome() assert actual == expected
class TestCoordenador: coordenador = None def setup_method(self, method): self.catalogo = CatalogoCurso() self.catalogo.limpa_catalogo() self.curso = Curso("direito") self.curso.atualiza_materias(Materia("civil")) self.curso.atualiza_materias(Materia("penal")) self.curso.atualiza_materias(Materia("filosofia")) self.coordenador = CoordenadorCurso(self.curso) def tear_down(self, method): self.catalogo.limpa_catalogo() self.curso = None self.coordenador = None def test_coordenador_nao_pode_coordenar_curso_cancelado( self, cria_curso_cancelado): curso = cria_curso_cancelado with pytest.raises( Exception, match="O coordenador não pode se associar a um curso cancelado" ): CoordenadorCurso(curso) def test_coordenador_pode_listar_info_todos_alunos_dos_cursos( self, cria_curso_com_materias): nome_1 = "diogo" nome_2 = "miguel" curso_1 = cria_curso_com_materias curso_1_nome = curso_1.pega_nome() curso_2 = self.curso curso_2_nome = curso_2.pega_nome() materias_1 = {materia_nome_1: 1.0} materias_2 = {"civil": 8.0, "penal": 8.0} cr_1 = 1.0 cr_2 = 8.0 coordenador = CoordenadorCurso(curso_1) coordenador.adiciona_cursos(curso_2) expected = { "alunos": [ { "nome": nome_1, "materias": materias_1, "coeficiente rendimento": cr_1, "curso": curso_1_nome }, { "nome": nome_2, "materias": materias_2, "coeficiente rendimento": cr_2, "curso": curso_2_nome }, ] } self._cria_aluno_no_curso(nome_1, curso_1, materias_1) self._cria_aluno_no_curso(nome_2, curso_2, materias_2) actual = coordenador.listar_detalhe_alunos() assert actual == expected def test_coordenador_pode_coordenar_mais_de_um_curso( self, cria_curso_com_materias): curso_1 = cria_curso_com_materias curso_2 = cria_curso_com_materias curso_3 = cria_curso_com_materias expected = curso_3 cursos = [curso_2, curso_3] cursos.append(curso_1) coordenador = CoordenadorCurso(curso_1) coordenador.adiciona_cursos(cursos) actual = coordenador.pega_lista_cursos() assert expected in actual 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_curso_pode_listar_alunos_do_curso_com_dois_aluno( self): nome_1 = "diogo" nome_2 = "miguel" materias_1 = {"civil": 1} materias_2 = {"penal": 8, "civil": 8} cr_1 = 1 cr_2 = 8 expected = { "alunos": [ { "nome": nome_1, "materias": materias_1, "coeficiente rendimento": cr_1, "curso": self.curso.pega_nome() }, { "nome": nome_2, "materias": materias_2, "coeficiente rendimento": cr_2, "curso": self.curso.pega_nome() }, ] } self._cria_aluno_no_curso(nome_1, self.curso, materias_1) self._cria_aluno_no_curso(nome_2, self.curso, materias_2) actual = self.coordenador.listar_detalhe_alunos() assert actual == expected def test_coordenador_curso_pode_listar_alunos_do_curso_com_um_aluno(self): nome = "marcos" materias = {"civil": 5} cr = 5 expected = { "alunos": [{ "nome": nome, "materias": materias, "coeficiente rendimento": cr, "curso": self.curso.pega_nome() }] } self._cria_aluno_no_curso(nome, self.curso, materias) actual = self.coordenador.listar_detalhe_alunos() assert actual == expected def test_coordenador_curso_pode_listar_alunos_curso_quando_zero_alunos( self): expected = {"alunos": []} actual = self.coordenador.listar_detalhe_alunos() assert actual == expected def _cria_aluno_no_curso(self, nome_aluno, curso, materias): aluno = Aluno(nome_aluno) aluno.inscreve_curso(curso) aluno.atualiza_materias_cursadas(materias)