コード例 #1
0
class TestSistema:
    def setup_method(self, method):
        self.base = Base()
        self.alumno = Alumno(base=self.base, creditos=0, nombre='Yo')
        self.base.db.append(Ramo('IIC2233A', '0', '0'))

    def test_inscribir_con_vacantes(self):
        ramo = self.base.db[0]  # ramo con vacantes
        assert self.base.inscribir(ramo.sigla, self.alumno)

    def test_inscribir_sin_vacantes(self):
        ramo = self.base.db[-1]  # ramo sin vacantes agregado antes
        assert not self.base.inscribir(ramo.sigla, self.alumno)

    def test_botar_vacantes(self):
        ramo = self.base.db[0]
        vacantes = ramo.vacantes  # vacantes antes de inscribir
        self.base.inscribir(ramo.sigla,
                            self.alumno)  # deberia bajar en 1 las vacantes
        self.base.botar(ramo.sigla,
                        self.alumno)  # deberia volver a subir las vacantes
        assert ramo.vacantes == vacantes  # revisar vacantes antes = vacantes despues

    def test_botar_creditos_lista(self):
        ramo = self.base.db[0]
        creditos = self.alumno.creditos_actuales  # creditos antes de inscribir
        self.alumno.tomar_ramo(ramo.sigla)  # inscribo deben subir los cred
        # y debe agregarse a la lista de ramos
        self.alumno.botar_ramo(
            ramo.sigla)  # boto debe vaciarse la lista y los cred bajar
        assert self.alumno.creditos_actuales == creditos and ramo.sigla not in self.alumno.ramos

    def test_revisar_repeticion(self):
        ramo = self.base.db[0]
        self.alumno.tomar_ramo(ramo.sigla)
        assert not self.alumno.tomar_ramo(ramo.sigla)

    def test_revisar_no_repeticion(self):
        ramo = self.base.db[0]
        ramo2 = self.base.db[1]
        self.alumno.tomar_ramo(ramo.sigla)
        assert not self.alumno.tomar_ramo(ramo2.sigla)

    def test_creditos_maximos_excedidos(self):
        assert not self.alumno.tomar_ramo('IIC2233')

    def test_creditos_maximos_no_excedidos(self):
        ramo = self.base.db[0]
        assert self.alumno.tomar_ramo(ramo.sigla)