⚠️ Lee esto si tú código sigue la guía y aun así los test te arrojan errores.
Este último ejercicio tiene (lo que yo considero) inconsistencias en la explicación de lo que debe hacer cada método vs con lo que se espera en las pruebas.
- En la descripción la función
dequeue()
dice:
Elimina y devuelve un objeto con las siguientes propiedades:
{ from, to, body, subject }
del correo electrónico más antiguo de la cola.
En el ejemplo del resultado que debemos obtener al llamar a dequeue
nos dan el siguiente Output:
Output:
{
'from': '[email protected]',
'to': '[email protected]',
'body': 'No puedo iniciar sesión en mi cuenta',
'subject': 'Problema de inicio de sesión'
}
Sin embargo a la hora de correr los test siguiente lo que establece la descripción del funcionamiento para el método dequeue
, obtengo el siguiente error:
En la descripción dice "objeto con las siguientes propiedades: { from, to, body, subject }
", from
no from_email
.
En el código al cambiar from
por from_email
el error sigue apareciendo.
def dequeue(self):
if not self.first:
raise IndexError("No hay emails.")
first_email = {
"from_email": self.first.from_email ,
"to": self.first.to,
"body": self.first.body,
"subject": self.first.subject
}
if self.first == self.last:
self.first = None
self.last = None
else:
self.first = self.first.next
self.length -= 1
return first_email
Lo mismo ocurre con los test para las funciones enqueue()
y peek()
Esa es la inconsistencia #1 que encontré. La 2da:
- El código de la solución en las funciones
dequeue()
ypeek()
no tienen nada que ver con los mensajes de error en los test.
código de solución
:
def dequeue(self):
if self.is_empty():
raise IndexError("La cola está vacía")
removed_mail = self.first # se asigna el nodo completo de first a removed_main
if self.length == 1:
self.first = None
self.last = None
else:
self.first = removed_mail.next
removed_mail.next = None
self.length -= 1
return removed_mail # No esta regresando un diccionario sino el nodo
En el código de solución retorna el nodo no un diccionario con los atributos que se especifican en la descripción del ejercicio. Al momento de correr el ejemplo en lugar de obtener el output
{
'from': '[email protected]',
'to': '[email protected]',
'body': 'No puedo iniciar sesión en mi cuenta',
'subject': 'Problema de inicio de sesión'
}
Obtenemos como resultado la referencia en memoria del nodo:
<mail.Mail object at 0x1c19f28>
.
.
El objetivo de este comentario es que el Team Platzi corrija la descripción de este ejercicio y los mensajes de los test, para que a los siguientes alumnos que lleguen hasta aquí no se topen con este inconveniente y luego no sepan que esta mal en su complementación en el playground cuando en local(XD) si funciona y sigue todas las instrucciones que describe la guía.
.
Si alguien se toma la molestia de leer este aporte, agradecería me diera su feedback y si estoy algo incorrecto por favor me lo hagan saber.
#NuncaParenDeAprender 💚
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?