🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónPruebas mínimas para un guion del analista
4 tareas · 35 min · Principiante
Viernes 13 de noviembre, por la tarde. Después de una semana de guiones que fallaron por datos que nadie había previsto, Nidia Arciniegas y Octavio Lizcano acuerdan una regla: ninguna función entra en un guion sin unas pocas pruebas que digan qué hace con los casos difíciles. La primera es la que decide el tipo de un indicador que llega sin tipo. Se leen la función, sus pruebas, la lista de casos acordada y la salida de pytest. Las pruebas ya se corrieron en la estación, sin red; aquí solo se leen.
Objetivo de la sala
Viernes 13 de noviembre, por la tarde. Después de una semana de guiones que fallaron por datos que nadie había previsto, Nidia Arciniegas y Octavio Lizcano acuerdan una regla: ninguna función entra en un guion sin unas pocas pruebas que digan qué hace con los casos difíciles. La primera es la que decide el tipo de un indicador que llega sin tipo. Se leen la función, sus pruebas, la lista de casos acordada y la salida de pytest. Las pruebas ya se corrieron en la estación, sin red; aquí solo se leen.Una prueba unitaria llama a una función con una entrada conocida y comprueba que devuelve lo esperado. Con pytest, basta una función cuyo nombre empiece por test_ y una línea assert. Una buena batería mínima no prueba lo obvio diez veces: prueba los bordes, los casos que ya rompieron algo y los que se van a repetir (mayúsculas, espacios, valores vacíos, formas raras de lo mismo).
Una prueba unitaria tiene que dar siempre el mismo resultado. Por eso no depende de la red ni de servicios de terceros: si la API de reputación cambia su veredicto o no contesta, la prueba fallaría sin que el código haya cambiado, y además estaría consultando un servicio externo cada vez que alguien corre las pruebas.
Lee casos.txt y test_clasifica.py.
Responde para continuar
¿Cuál de estas pruebas sobra en la batería de tipo_de_indicador?
Ver pista de ayuda
Relee la regla del equipo al final de casos.txt.
La salida de pytest -q empieza con una línea de puntos: cada punto es una prueba que pasó y cada F una que falló, en el orden del archivo. Después viene un bloque por cada fallo, con el código de la prueba, la línea marcada con > y, debajo, lo que se esperaba frente a lo que llegó. Al final, el resumen con el total.
Abre salida-pytest.txt.
Responde para continuar
¿Qué prueba falla? Escribe su nombre tal como aparece en la salida.
Ver pista de ayuda
Busca el título del bloque de fallos o la línea que empieza por FAILED.
En una comparación que falla, pytest muestra los dos lados del assert: a la izquierda lo que devolvió la función y a la derecha lo que la prueba esperaba. Ese par dice dónde mirar en el código: si la función devolvió otra cosa, hay que seguir su lógica con esa entrada exacta hasta ver por qué rama salió.
Sigue la entrada de la prueba que falla por las líneas 8 a 20 de clasifica.py.
Responde para continuar
¿Qué devolvió tipo_de_indicador en la prueba que falla? Escribe el valor sin comillas.
Ver pista de ayuda
Está a la izquierda del == en la línea AssertionError de la salida.
Una lista de casos acordada en una revisión solo sirve si cada caso termina en una prueba. Los casos sin prueba son promesas: el día que alguien cambie la función, nada avisará si ese caso se rompe. Comparar la lista con las pruebas es parte de revisar, igual que leer el código.
Compara uno a uno los casos de casos.txt con las funciones de test_clasifica.py.
Responde para continuar
¿Qué caso de la lista acordada no tiene todavía ninguna prueba? Escribe su id.
Ver pista de ayuda
Para cada caso, busca en las pruebas una entrada que lo represente; mira con cuidado cómo está escrita cada entrada.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.