Skip to main content
Glama

estudIA-MCP

by JpAboytes
setup_test_data.py6.31 kB
#!/usr/bin/env python3 """ Script para configurar datos de prueba en Supabase Obtiene IDs reales y crea registros necesarios para testing """ import asyncio import sys from pathlib import Path import uuid # Agregar src al path sys.path.insert(0, str(Path(__file__).parent / 'src')) from src.config import config from src.supabase_client import supabase_client async def setup_test_data(): """Configurar datos de prueba""" print("\n" + "="*70) print("🔧 CONFIGURACIÓN DE DATOS DE PRUEBA") print("="*70) try: # 1. Obtener o crear un classroom print("\n📚 Paso 1: Verificando classrooms...") classrooms = await asyncio.to_thread( lambda: supabase_client.client.table('classrooms') .select('id, name, code') .limit(5) .execute() ) if classrooms.data and len(classrooms.data) > 0: classroom = classrooms.data[0] classroom_id = classroom['id'] print(f" ✅ Classroom encontrado:") print(f" ID: {classroom_id}") print(f" Name: {classroom.get('name', 'N/A')}") print(f" Code: {classroom.get('code', 'N/A')}") else: print(" ⚠️ No se encontraron classrooms") print(" 💡 Crea un classroom primero desde tu aplicación") return None # 2. Obtener o crear un documento de prueba print("\n📄 Paso 2: Verificando classroom_documents...") documents = await asyncio.to_thread( lambda: supabase_client.client.table('classroom_documents') .select('id, title, classroom_id') .eq('classroom_id', classroom_id) .limit(5) .execute() ) document_id = None if documents.data and len(documents.data) > 0: document = documents.data[0] document_id = document['id'] print(f" ✅ Documento encontrado:") print(f" ID: {document_id}") print(f" Title: {document.get('title', 'N/A')}") else: print(" ℹ️ No hay documentos en este classroom") print(" 💡 Intentando crear un documento de prueba...") # Obtener el primer usuario para owner_user_id users = await asyncio.to_thread( lambda: supabase_client.client.table('users') .select('id') .limit(1) .execute() ) if users.data and len(users.data) > 0: owner_id = users.data[0]['id'] # Crear documento de prueba doc_data = { 'classroom_id': classroom_id, 'owner_user_id': owner_id, 'title': 'Documento de Prueba - Introducción a IA', 'description': 'Documento generado automáticamente para testing', 'status': 'ready', 'embedding_ready': True, 'chunk_count': 0, 'storage_path': 'test/intro-ia.pdf', 'original_filename': 'intro-ia.pdf' } result = await asyncio.to_thread( lambda: supabase_client.client.table('classroom_documents') .insert(doc_data) .execute() ) if result.data: document_id = result.data[0]['id'] print(f" ✅ Documento creado:") print(f" ID: {document_id}") else: print(" ❌ No se pudo crear el documento") return None else: print(" ❌ No se encontraron usuarios") print(" 💡 Necesitas al menos un usuario en la tabla 'users'") return None # 3. Verificar chunks existentes print("\n🧩 Paso 3: Verificando chunks existentes...") chunks = await asyncio.to_thread( lambda: supabase_client.client.table('classroom_document_chunks') .select('id, chunk_index') .eq('classroom_document_id', document_id) .execute() ) chunk_count = len(chunks.data) if chunks.data else 0 print(f" 📊 Chunks existentes: {chunk_count}") # 4. Crear archivo de configuración para tests print("\n📝 Paso 4: Generando archivo de configuración...") config_content = f"""# Configuración de IDs para testing # Generado automáticamente por setup_test_data.py CLASSROOM_ID = "{classroom_id}" DOCUMENT_ID = "{document_id}" # Información adicional CLASSROOM_NAME = "{classroom.get('name', 'N/A')}" DOCUMENT_TITLE = "{document.get('title', 'N/A') if documents.data and len(documents.data) > 0 else 'Documento de Prueba - Introducción a IA'}" EXISTING_CHUNKS = {chunk_count} """ with open('test_config.py', 'w', encoding='utf-8') as f: f.write(config_content) print(" ✅ Archivo 'test_config.py' creado") # 5. Mostrar resumen print("\n" + "="*70) print("✅ CONFIGURACIÓN COMPLETADA") print("="*70) print("\n📋 Datos disponibles para testing:") print(f" • Classroom ID: {classroom_id}") print(f" • Document ID: {document_id}") print(f" • Chunks existentes: {chunk_count}") print("\n💡 Siguiente paso:") print(" Ejecuta: python test_with_real_data.py") print(" O importa estos IDs en tus tests:") print(" >>> from test_config import CLASSROOM_ID, DOCUMENT_ID") return { 'classroom_id': classroom_id, 'document_id': document_id, 'chunk_count': chunk_count } except Exception as e: print(f"\n❌ Error: {e}") import traceback traceback.print_exc() return None async def main(): """Ejecutar configuración""" await setup_test_data() if __name__ == "__main__": asyncio.run(main())

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JpAboytes/estudIA-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server