Skip to content

Miguel Leonardo - Inconsistencia de comportamiento y retornos en tasks.py tras cambios (next_id / validar_task_id / add_task / complete_task / delete_task) #43

Description

@EstevenMarchand06

Descripción

En tasks.py se integraron varias mejoras (función next_id(), validación robusta de task_id, manejo de tareas inválidas y mensajes con emojis). Sin embargo, los cambios introducen inconsistencias con el comportamiento esperado del sistema:

  • add_task() ahora retorna True/False en algunos casos, pero no está claro si el flujo principal (main.py) espera ese retorno o no.
  • complete_task() y delete_task() aparecen con dos versiones: una anterior que solo imprimía “Función no disponible por el momento” y otra ya implementada con lógica real.
  • Se cambiaron mensajes/prints (con emojis) y se modificó la forma de calcular el id (len(tasks)+1 → next_id(tasks)), lo cual puede afectar pruebas o funcionamiento si el resto del programa asume el método anterior.
  • list_tasks() ahora filtra tareas que no sean diccionario, pero el formato esperado del JSON debe quedar alineado con eso.

Archivos afectados

  • tasks.py (principalmente)

Evidencia observada (según capturas)

  • Se agrega next_id(tasks) para crear IDs únicos aunque se eliminen tareas.
  • validar_task_id() valida: entero, mayor que 0, maneja errores sin “romper”.
  • add_task() valida None, espacios y duplicados, y retorna False en error.
  • complete_task() y delete_task() ya hacen cambios reales, pero antes existía versión “no disponible”.

Problema / Riesgo

  • Si main.py o las pruebas esperan que add_task() solo haga print() y no regrese valores (o que regrese None), puede haber fallos lógicos.
  • Si quedaron restos de funciones antiguas o duplicadas (definidas dos veces), Python tomará la última definición y puede generar confusión en el equipo.
  • Cambiar el sistema de IDs puede romper consistencia si el JSON ya tiene IDs o si se esperan consecutivos.

Resultado actual

Código con mejoras, pero no está claro si es consistente con el resto del sistema (menú principal y pruebas).

Resultado esperado

  • Unificar el comportamiento del módulo tasks.py con el flujo de main.py:

  • Definir claramente si las funciones retornan True/False o solo imprimen.

  • Evitar duplicidad de funciones (solo debe existir una implementación final).

  • Asegurar que el sistema de IDs (con next_id) esté alineado con el formato del JSON y el resto del programa.

Criterios de aceptación

  • tasks.py no tiene funciones duplicadas (solo una versión final de cada función).
  • add_task, complete_task, delete_task tienen retornos consistentes (o se documenta su uso).
  • main.py funciona correctamente con esas funciones (agregar/listar/completar/eliminar).
  • IDs se generan correctamente aunque se eliminen tareas (sin repetir ID).
  • list_tasks() no truena con datos corruptos y muestra advertencia cuando encuentre tareas inválidas.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions