class Oseba: def __init__(self, ime, spol, starost): self.ime = ime self.spol = spol self.starost = starost def pozdravi(self): print("Pozdravljeni, jaz sem", self.ime) print("Štejem", self.starost, "let") print("in sem", self.kaj_sem()) def kaj_sem(self): if self.spol == "M": return "moški" else: return "ženska" class Student(Oseba): def __init__(self, ime, spol, starost, studij): super().__init__(ime, spol, starost) self.studij = studij def kaj_sem(self): if self.spol == "M": return "študent" else: return "študentka" class Bruc(Student): pass class Ucitelj(Oseba): def __init__(self, ime, spol, starost, habilitacija): super().__init__(ime, spol, starost) self.habilitacija = habilitacija def kaj_sem(self): return self.habilitacija class Upokojenec(Oseba): def skoci(self): print("Ne morem skakati") class Cistilka(Oseba): def __init__(self, starost): super().__init__("Fata", "Ž", starost) import unittest class Testi(unittest.TestCase): def test_starost(self): benjamin = Student("Benjamin", "M", 20, "Ra-Te") self.assertEqual(benjamin.koliko_star(), 20) cilka = Student("Cilka", "Z", 21, "Ra-Te") self.assertIsNone(cilka.koliko_star()) self.assertEqual(cilka.starost, 21) benjamin = Bruc("Benjamin", "M", 18, "Ra-Te") self.assertEqual(benjamin.koliko_star(), 18) cilka = Bruc("Cilka", "Z", 18, "Ra-Te") self.assertEqual(cilka.koliko_star(), 18) benjamin = Ucitelj("Benjamin", "M", 28, "asistent") self.assertEqual(benjamin.koliko_star(), 28) cilka = Ucitelj("Cilka", "Z", 28, "asistentka") self.assertIsNone(cilka.koliko_star()) cilka = Cistilka(34) self.assertIsNone(cilka.koliko_star()) benjamin = Upokojenec("Benjamin", "M", 72) self.assertEqual(benjamin.koliko_star(), 65) cilka = Upokojenec("Cilka", "Z", 72) self.assertEqual(cilka.koliko_star(), 65) self.assertEqual(benjamin.starost, 72) self.assertIs(Student.koliko_star, Oseba.koliko_star, "Studentu ne dajaj lastne metode koliko_star, saj je ne potrebuje") self.assertIs(Ucitelj.koliko_star, Oseba.koliko_star, "Ucitelju ne dajaj lastne metode koliko_star, saj je ne potrebuje") if __name__ == "__main__": unittest.main()