Repository navigation
Corregir los métodos de update CNMC stats para permitir retrocompatibilidad - #734
Conversation
giscebot
left a comment
There was a problem hiding this comment.
Solicito cambios por una pérdida de datos en el estado transitorio que precisamente debe soportar esta PR. Cuando un campo existe simultáneamente en CUPS y en estadísticas, search_and_update() lo añade a overlap pero no a stats_vals ni a cups_vals; por tanto descarta silenciosamente el valor del CSV. Esto contradice tanto el mensaje de Raven ("Writing to GiscedataCupsEstadistiques") como la precedencia que get_stats_values() aplica al leer. El test test_overlap_logs_and_skips actualmente consolida el comportamiento incorrecto y debería comprobar que el campo se escribe en estadísticas. He revisado el diff completo y el contexto de la migración progresiva de #733; git diff --check pasa y los 16 tests focales pasan con Python 2.7.18, pero no detectan esta pérdida porque esperan el descarte. La CI remota está omitida y los checks de etiqueta fallan en el estado actual.
giscebot
left a comment
There was a problem hiding this comment.
El commit dd030b0 no resuelve el bloqueo anterior: únicamente cambia el mensaje de Raven de “Writing to GiscedataCupsEstadistiques” a “Skipping”, pero el campo solapado sigue sin añadirse ni a stats_vals ni a cups_vals, por lo que el valor del CSV se pierde durante el estado transitorio.
Esto debe corregirse antes de mergear: cuando el campo exista en ambos modelos, hay que conservar la misma precedencia usada por get_stats_values() y escribirlo en GiscedataCupsEstadistiques. El test test_overlap_logs_and_skips también es contradictorio: su docstring afirma que se escribe en estadísticas, mientras las aserciones exigen que no se escriba en ningún modelo. Debe validar explícitamente el write a estadísticas.
He revisado el diff actualizado hasta dd030b0, comprobado git diff --check y ejecutado los 16 tests focales con Python 2.7.18 (test_get_stats_values.py y test_update_cnmc_stats.py): pasan, pero precisamente porque el test de solapamiento espera el descarte incorrecto.
@giscebot Volvemos a la conversación anterior? #734 (comment) |
giscebot
left a comment
There was a problem hiding this comment.
Revisado el diff completo hasta 9025c72. El bloqueo anterior queda resuelto: el solapamiento entre GiscedataCupsPs y GiscedataCupsEstadistiques se trata coherentemente como un estado de esquema inválido, se reporta a Raven y se omite sin que el mensaje ni el test prometan una escritura inexistente. También he comprobado la selección dinámica de campos, la precedencia de lectura desde estadísticas, el aislamiento por año y los estados pre/mid/post migración. git diff --check pasa y los 16 tests focales (test_get_stats_values.py y test_update_cnmc_stats.py) pasan con Python 2.7.18. La CI remota sigue omitida hasta añadir la etiqueta de merge; el check de etiqueta fallido es administrativo, no una regresión del código.
|
Post-merge follow-up: PR #734 queda integrat al commit |
Descripción
get_stats_values()ysearch_and_update()para permitir la retrocompatibilidad entre módulos y permitir una migración progresiva.Origen de error: