
Postal IA (V): comprobaciones permanentes y un botón para copiar el poema
Esta entrada continúa las cuatro anteriores sobre Postal IA. Esta sesión no ha tocado ni el texto ni el fondo de la postal: ha sido una sesión de andar por casa, de esas que no se ven en pantalla pero que dejan el proyecto más firme. Dos cosas: un archivo de pruebas automáticas para la métrica del romance, y un botón para copiar el poema sin tener que seleccionarlo a mano.
Fijar lo que ya se había comprobado a mano
En la entrada anterior sobre el romance se contaba que metrica.py se había verificado contra ocho versos de referencia —dos de «Canción del pirata», de Espronceda, y seis escritos a propósito para forzar casos concretos de sinalefa y acentuación— antes de darlo por bueno. Esa comprobación se hizo entonces a mano, ejecutando el contador verso a verso y mirando el resultado. Útil en su momento, pero frágil: si dentro de unos meses se toca metrica.py para, por ejemplo, verificar también la rima asonante, nada avisaría si ese cambio rompe sin querer algo que ya funcionaba.
La solución, ya probada en PINSAPIA con su análisis de legibilidad, es fijar esos casos como prueba permanente: un archivo aparte, test_metrica.py, que no es parte de la aplicación —no lo usa ni el servidor ni la página— sino una herramienta de mantenimiento. Se ejecuta a mano con python test_metrica.py y compara los ocho versos de referencia contra lo que devuelve contar_silabas_verso() ahora mismo, imprimiendo un OK o un FAIL por cada uno y un resumen al final. Con el código actual: 8 de 8.
No se ha copiado literalmente el archivo de pruebas de PINSAPIA (test_legibilidad.py) porque no estaba disponible para revisarlo directamente; el estilo —script sencillo, sin ningún framework de pruebas de por medio, pensado para ejecutarse y leerse sin más ceremonia— sí se ha seguido, que es lo que de verdad importaba mantener.
Un botón que faltaba: copiar el poema
Hasta ahora, quedarse con el poema generado significaba seleccionar el texto sobre el fondo de la postal a mano, letra a letra si el fondo no ayudaba a distinguirlo bien. Se ha añadido un tercer botón, «Copiar poema», junto a los de cambiar de fondo y descargar la imagen: copia el poema tal cual, en texto plano, al portapapeles del dispositivo.
Tiene una particularidad que vale la pena explicar porque va a importar en cuanto Postal IA salga de localhost: el método moderno de copiar al portapapeles (navigator.clipboard) solo funciona en lo que los navegadores llaman un «contexto seguro» —básicamente, https://, o localhost—. En cuanto la página se abra desde otro dispositivo de la red del centro por http:// sin más, ese método deja de estar disponible. Por eso el botón tiene un plan B: si el método moderno no existe, usa una técnica más antigua (crear un campo de texto oculto, seleccionar su contenido y pedirle al navegador que copie la selección) que sigue funcionando en cualquier caso. El botón avisa con «¡Copiado!» cuando sale bien, o con «No se pudo copiar» si ninguno de los dos métodos funciona, y vuelve a su texto normal a los dos segundos.
Cómo se comprobó
test_metrica.py se ejecutó directamente y dio 8 de 8. El botón de copiar se probó con un navegador sin cabeza (Playwright) con permisos de portapapeles concedidos: genera una postal, pulsa «Copiar poema», comprueba que el contenido del portapapeles es exactamente el poema mostrado, comprueba que el botón cambia a «¡Copiado!», y comprueba que a los dos segundos vuelve a su texto original.
Qué no hace todavía (límites honestos)
- El plan B de copiar (
execCommand) es una técnica que los navegadores consideran obsoleta, aunque todavía la admiten todos; el día que dejen de hacerlo, habrá que buscar otra alternativa para el caso sinhttps://. test_metrica.pycubre ocho versos de referencia, no un corpus grande: sigue siendo una comprobación razonable para uso educativo, no una garantía absoluta, como ya se avisaba en la entrada anterior sobre el romance.- La rima asonante del romance sigue sin comprobarse; esto no ha cambiado en esta sesión.
Siguiente paso
Cuando Postal IA se pruebe por fin desde otro dispositivo de la red del centro (pendiente desde la entrada anterior), será también la primera ocasión real de comprobar que el botón de copiar funciona con su plan B, no solo en la teoría. Si eso sale bien, el proyecto estaría prácticamente listo para su primera prueba con un grupo de alumnado.

Etiqueta:clipboard, ia monterroso, métrica, portapapeles, postal ia, pruebas automáticas, sílabas, testing


