mirror of
https://github.com/marcogll/talia_bot.git
synced 2026-01-13 21:35:19 +00:00
This commit fixes a critical `ImportError` that prevented the bot from starting. The error was caused by the `agenda.py` module attempting to import calendar ID variables that were not being loaded into the application's configuration. The fix involves: - Updating `talia_bot/config.py` to correctly load the `WORK_GOOGLE_CALENDAR_ID` and `PERSONAL_GOOGLE_CALENDAR_ID` from the environment. - Removing the obsolete `CALENDAR_ID` variable from the configuration. - Updating `talia_bot/modules/calendar.py` to import and use the new, more specific `WORK_GOOGLE_CALENDAR_ID` as its default, ensuring consistency with the rest of the application.
102 lines
6.1 KiB
Markdown
102 lines
6.1 KiB
Markdown
# Plan de Pruebas: Estabilización de Talia Bot
|
|
|
|
Este documento describe el plan de pruebas paso a paso para verificar la correcta funcionalidad del sistema Talia Bot después de la fase de reparación.
|
|
|
|
---
|
|
|
|
### 1. Configuración y Entorno
|
|
|
|
- **Qué se prueba**: La correcta carga de las variables de entorno.
|
|
- **Pasos a ejecutar**:
|
|
1. Asegurarse de que el archivo `.env` existe y contiene todas las variables definidas in `.env.example`.
|
|
2. Prestar especial atención a `WORK_GOOGLE_CALENDAR_ID` y `PERSONAL_GOOGLE_CALENDAR_ID`.
|
|
3. Iniciar el bot.
|
|
- **Resultado esperado**: El bot debe iniciarse sin errores relacionados con variables de entorno faltantes. Los logs de inicio deben mostrar que la aplicación se ha iniciado correctamente.
|
|
- **Qué indica fallo**: Un crash al inicio, o errores en los logs indicando que una variable de entorno `None` o vacía está siendo utilizada donde no debería.
|
|
|
|
---
|
|
|
|
### 2. Routing por Rol de Usuario
|
|
|
|
- **Qué se prueba**: Que cada rol de usuario (`admin`, `crew`, `client`) vea el menú correcto y solo las opciones que le corresponden.
|
|
- **Pasos a ejecutar**:
|
|
1. **Como Admin**: Enviar el comando `/start`.
|
|
2. **Como Crew**: Enviar el comando `/start`.
|
|
3. **Como Cliente**: Enviar el comando `/start`.
|
|
- **Resultado esperado**:
|
|
- **Admin**: Debe ver el menú de administrador, que incluirá las opciones "Revisar Pendientes", "Agenda", y las nuevas opciones reparadas ("Imprimir Archivo", "Capturar Idea").
|
|
- **Crew**: Debe ver el menú de equipo con "Proponer actividad" y "Ver estatus de solicitudes".
|
|
- **Cliente**: Debe ver el menú de cliente con "Agendar una cita" y "Información de servicios".
|
|
- **Qué indica fallo**: Cualquier rol viendo un menú que no le corresponde, o la ausencia de las opciones esperadas.
|
|
|
|
---
|
|
|
|
### 3. Flujos de Administrador Faltantes
|
|
|
|
- **Qué se prueba**: La visibilidad y funcionalidad de los flujos de "Imprimir Archivo" y "Capturar Idea".
|
|
- **Pasos a ejecutar**:
|
|
1. **Como Admin**: Presionar el botón "Imprimir Archivo" (o su equivalente) en el menú.
|
|
2. **Como Admin**: Presionar el botón "Capturar Idea" en el menú.
|
|
- **Resultado esperado**:
|
|
- Al presionar "Imprimir Archivo", el bot debe iniciar el flujo de impresión, pidiendo al usuario que envíe un documento.
|
|
- Al presionar "Capturar Idea", el bot debe iniciar el flujo de captura de ideas, haciendo la primera pregunta definida en `admin_idea_capture.json`.
|
|
- **Qué indica fallo**: Que los botones no existan en el menú, o que al presionarlos no se inicie el flujo de conversación correspondiente.
|
|
|
|
---
|
|
|
|
### 4. Lógica de Agenda y Calendario
|
|
|
|
- **Qué se prueba**: La correcta separación de agendas y el tratamiento del tiempo personal.
|
|
- **Pasos a ejecutar**:
|
|
1. **Preparación**: Crear un evento en el `PERSONAL_GOOGLE_CALENDAR_ID` que dure todo el día de hoy, llamado "Día Personal". Crear otro evento en el `WORK_GOOGLE_CALENDAR_ID` para hoy a las 3 PM, llamado "Reunión de Equipo".
|
|
2. **Como Admin**: Presionar el botón "Agenda" en el menú.
|
|
- **Resultado esperado**: El bot debe responder mostrando *únicamente* el evento "Reunión de Equipo" a las 3 PM. El "Día Personal" no debe ser visible, pero el tiempo que ocupa debe ser tratado como no disponible si se intentara agendar algo.
|
|
- **Qué indica fallo**: La agenda muestra el evento "Día Personal", o muestra eventos de otros calendarios que no son el de trabajo del admin.
|
|
|
|
---
|
|
|
|
### 5. Persistencia en Rechazo de Actividades
|
|
|
|
- **Qué se prueba**: Que una actividad propuesta por el equipo y rechazada por el admin no vuelva a aparecer como pendiente.
|
|
- **Pasos a ejecutar**:
|
|
1. **Como Crew**: Iniciar el flujo "Proponer actividad" y proponer una actividad para mañana.
|
|
2. **Como Admin**: Ir a "Revisar Pendientes". Ver la actividad propuesta.
|
|
3. **Como Admin**: Presionar el botón para "Rechazar" la actividad.
|
|
4. **Como Admin**: Volver a presionar "Revisar Pendientes".
|
|
- **Resultado esperado**: La segunda vez que se revisan los pendientes, la lista debe estar vacía o no debe incluir la actividad que fue rechazada.
|
|
- **Qué indica fallo**: La actividad rechazada sigue apareciendo en la lista de pendientes.
|
|
|
|
---
|
|
|
|
### 6. RAG (Retrieval-Augmented Generation) y Whisper
|
|
|
|
- **Qué se prueba**: La regla de negocio "sin contexto, no hay respuesta" del RAG y la nueva funcionalidad de transcripción de voz.
|
|
- **Pasos a ejecutar**:
|
|
1. **RAG**:
|
|
a. **Como Cliente**: Iniciar el flujo de ventas.
|
|
b. Cuando se pregunte por la idea de proyecto, responder con un texto que no contenga ninguna palabra clave relevante de `services.json` (ej: "quiero construir una casa para mi perro").
|
|
2. **Whisper**:
|
|
a. **Como Cliente**: Iniciar el flujo de ventas.
|
|
b. Cuando se pregunte por el nombre, responder con un mensaje de voz diciendo tu nombre.
|
|
- **Resultado esperado**:
|
|
- **RAG**: El bot debe responder con un mensaje indicando que no puede generar una propuesta con esa información, en lugar de dar una respuesta genérica.
|
|
- **Whisper**: El bot debe procesar el mensaje de voz, transcribirlo, y continuar el flujo usando el nombre transcrito como si se hubiera escrito.
|
|
- **Qué indica fallo**:
|
|
- **RAG**: El bot da un pitch de ventas genérico o incorrecto.
|
|
- **Whisper**: El bot responde con el mensaje "Voice message received (transcription not implemented yet)" o un error.
|
|
|
|
---
|
|
|
|
### 7. Comandos Slash
|
|
|
|
- **Qué se prueba**: La funcionalidad de los comandos básicos, incluyendo el inexistente `/abracadabra`.
|
|
- **Pasos a ejecutar**:
|
|
1. Enviar el comando `/start`.
|
|
2. Iniciar una conversación y luego enviar `/reset`.
|
|
3. Enviar un comando inexistente como `/abracadabra`.
|
|
- **Resultado esperado**:
|
|
- `/start`: Muestra el menú de bienvenida correspondiente al rol.
|
|
- `/reset`: El bot responde "Conversación reiniciada" y borra el estado actual del flujo.
|
|
- `/abracadabra`: Telegram o el bot deben indicar que el comando no es reconocido.
|
|
- **Qué indica fallo**: Que los comandos `/start` o `/reset` no funcionen como se espera. (No se espera que `/abracadabra` funcione, por lo que un fallo sería que *hiciera* algo).
|