IIC2233 / Syllabus-2024-1

77 stars 13 forks source link

Test de integración #435

Open ignanuyens opened 5 months ago

ignanuyens commented 5 months ago

Tengo una duda respecto a los test cases de integración, corro todos los test menos esos:

test_decodificar_largo_grande (main.TestDesencriptar.test_decodificar_largo_grande) Verificar decodificación con largo grande ... ok test_decodificar_largo_pequeño (main.TestDesencriptar.test_decodificar_largo_pequeño) Verificar decodificación con largo pequeño ... ok test_decodificar_rango_grande (main.TestDesencriptar.test_decodificar_rango_grande) Verificar decodificación de rango con números grandes ... ok test_decodificar_rango_pequeño (main.TestDesencriptar.test_decodificar_rango_pequeño) Verificar decodificación de rango con números pequeños ... ok test_desencriptar (main.TestDesencriptar.test_desencriptar) Verificar correcto armado del mensaje encriptado asumuiendo que "decodificar_largo", "separar" y "decodificar" están buenos ... ok test_deserializar_tortuga (main.TestDesencriptar.test_deserializar_tortuga) Verificar resultado correcto de esta función. ... ok test_deserializar_tortuga_excepcion (main.TestDesencriptar.test_deserializar_tortuga_excepcion) Verificar el correcto levantamiento de excepciones ... ok test_separar_msg_encriptado_impar (main.TestDesencriptar.test_separar_msg_encriptado_impar) Verificar que separa el mensaje correctamente y lo invierte cuando el largo es impar ... ok test_separar_msg_encriptado_par (main.TestDesencriptar.test_separar_msg_encriptado_par) Verificar que separa el mensaje correctamente ... ok test_codificar_largo_grande (main.TestEncriptar.test_codificar_largo_grande) Verificar correcta codificación con largo grande ... ok test_codificar_largo_pequeño (main.TestEncriptar.test_codificar_largo_pequeño) Verificar correcta codificación con largo pequeño ... ok test_codificar_secuencia_grande (main.TestEncriptar.test_codificar_secuencia_grande) Verificar correcta codificación con números grandes ... ok test_codificar_secuencia_pequeño (main.TestEncriptar.test_codificar_secuencia_pequeño) Verificar correcta codificación con números pequeños ... ok test_separar_msg (main.TestEncriptar.test_separar_msg) Verificar correcta separación de mensaje donde largo es impar ... ok test_separar_msg_2 (main.TestEncriptar.test_separar_msg_2) Verificar correcta separación de mensaje donde largo es par ... ok test_separar_msg_3 (main.TestEncriptar.test_separar_msg_3) Verificar correcta separación de mensaje donde largo es impar y partiendo de 0 ... ok test_serializar_tortuga (main.TestEncriptar.test_serializar_tortuga) Verifica el resultado segun lo pedido. ... ok test_serializar_tortuga_excepcion (main.TestEncriptar.test_serializar_tortuga_excepcion) Verificar el correcto levantamiento de excepciones ... ok test_verificar_rango_None (main.TestEncriptar.test_verificar_rango_None) Verifica que la funcion retorna None ... ok test_verificar_rango_creciente (main.TestEncriptar.test_verificar_rango_creciente) Verificar excepción cuando fin es menor a inicio ... ok test_verificar_rango_maximo (main.TestEncriptar.test_verificar_rango_maximo) Verificar excepción cuando fin es mayor al largo ... ok test_verificar_rango_minimo (main.TestEncriptar.test_verificar_rango_minimo) Verificar excepción cuando inicio es menor a 0 ... ok test_integracion_desencriptar (main.TestIntegracion.test_integracion_desencriptar) Verificar que todo el proceso de desencriptar cumple con lo pedido ... FAIL test_integracion_encriptar (main.TestIntegracion.test_integracion_encriptar) Verificar que todo el proceso de encriptar cumple con lo pedido ... ok test_integracion_todo_proceso (main.TestIntegracion.test_integracion_todo_proceso) Verificar que todo el proceso de encriptar y desencripar funcionan en conjunto ... ERROR test_integracion_todo_proceso_2 (main.TestIntegracion.test_integracion_todo_proceso_2) Verificar que todo el proceso de encriptar y desencripar funcionan en conjunto ... ERROR

los errores son del tipo:

mensaje_deserializado = pickle.loads(mensaje_codificado)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

EOFError: Ran out of input

y

AssertionError: bytearray(b'') != bytearray(b'\x03\x00\x02\x01')

Y no sé qué podría ser. Muchas gracias de antemano

Drpinto1 commented 5 months ago

¡Hola @ignanuyens!

Leyendo las excepciones y fails que me indicas de los tests, pareciera que hay un error en el cálculo de largo de los mensajes.

En particular, el AssetionError está indicando una comparación fallida entre tu resultado y el resultado esperado, donde uno de ellos es un bytearray vacío; mientras que un EOFError, suele indicar que se está intentando obtener un valor a partir de un iterable vacío (o se están intentando obtener más valores que los que contiene el iterable).

Cuéntame si con este comentario logras encontrar el error.

¡Saludos!