Q:

Incremento de un atributo

Tengo el siguiente código el cuál debe incrementar el valor del atributo en 1, teniendo en cuenta las siguientes condiciones:
Si el valor de los minutos es igual a 59 antes del incremento, entonces, si el valor de las horas es menos de 23, el método incrementará en 1 horas y pondrá a cero el valor de minutos, pero, si por el contrario, el valor de horas es igual a 23, siendo los minutos igual a 59, el método pondrá a cero ambos atributos
Me falla en uno de esos "test"
class Time:
    """Clase que muestra el tiempo"""
    def __init__(self, h, m):
        """Time objects are initialized with hours and minutes"""
        self.horas = h
        self.minutos = m

    def tiempo_incrementacion(self):
        if self.minutos == 59 or self.horas == 23:
            if self.horas < 23:
                self.horas += 1
                self.minutos = 0
            elif self.minutos == 59:
                self.horas = 0
                self.minutos = 0

t = Time(12, 30)
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 12 y minutos = 30"
t.increase()
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 12 y minutos = 31"

t = Time(12, 59)
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 12 y minutos = 59"
t.increase()
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 13 y minutos = 0"

t = Time(23, 59)
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 23 y minutos = 59"
t.increase()
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 0 y minutos = 0"

A:

Mira
Solo le cambie si los minutos son 59 entonces minutos = 0 y vamos a comprobar si la hora es 23 y si es 23 se cambia a 0 sino se le suma 1 y si los minutos no son 59 se le suma 1
class Time:
    """Clase que muestra el tiempo"""
    def __init__(self, h, m):
        """Time objects are initialized with hours and minutes"""
        self.horas = h
        self.minutos = m

    def increase(self):
        if self.minutos == 59:
           self.minutos = 0

           self.horas = 0 if self.horas == 23 else self.horas + 1  
        else:
          self.minutos += 1

t = Time(12, 30)
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 12 y minutos = 30"
t.increase()
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 12 y minutos = 31"

t = Time(12, 59)
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 12 y minutos = 59"
t.increase()
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 13 y minutos = 0"

t = Time(23, 59)
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 23 y minutos = 59"
t.increase()
print("Horas = {} y minutos = {}".format(t.horas, t.minutos)) # Prints "Horas = 0 y minutos = 0"

