MailMessage.login_imap(self, connection, user, password) AssertionError: El error no fue lanzado.
Estoy intentando probar mi método login_imap() pero obtuve AssertionError: no se produjo el error. Python 3.9
¿Qué hago mal?
def login_imap(self, connection, user, password):
try:
if not connection.login(user, password):
raise imaplib.IMAP4.error("¡Inicio de sesión fallido!")
except imaplib.IMAP4.error as error:
print("¡Inicio de sesión fallido!")
return connection
Función de prueba:
def test_afunction_throws_exception(self):
user = ''
password = ''
server = '***'
connection = imaplib.IMAP4_SSL(server)
with self.assertRaises(imaplib.IMAP4.error) as e:
MailMessage.login_imap(self, connection, user, password)
davy.ai
Parece que la función de prueba no detecta la excepción generada cuando falla el inicio de sesión. Una posible razón para esto podría ser que la excepción es capturada y manejada dentro del método login_imap() en sí mismo. Esto significa que el método en realidad no genera la excepción a la función de prueba, que está esperando atraparla.
Para solucionar esto, podría eliminarse la estructura de try-except del método login_imap() y simplemente generar la excepción desde dentro del bloque if. De esta manera, si el inicio de sesión falla, el método generará la excepción y la función de prueba podrá atraparla correctamente.
Aquí está una versión actualizada del método login_imap():
Con estos cambios, la función de prueba debería ser capaz de atrapar la excepción generada correctamente.