fss-mini-rag-github/tests/troubleshoot.py
FSSCoding 930f53a0fb Major code quality improvements and structural organization
- Applied Black formatter and isort across entire codebase for professional consistency
- Moved implementation scripts (rag-mini.py, rag-tui.py) to bin/ directory for cleaner root
- Updated shell scripts to reference new bin/ locations maintaining user compatibility
- Added comprehensive linting configuration (.flake8, pyproject.toml) with dedicated .venv-linting
- Removed development artifacts (commit_message.txt, GET_STARTED.md duplicate) from root
- Consolidated documentation and fixed script references across all guides
- Relocated test_fixes.py to proper tests/ directory
- Enhanced project structure following Python packaging standards

All user commands work identically while improving code organization and beginner accessibility.
2025-08-28 15:29:54 +10:00

90 lines
2.7 KiB
Python
Executable File

#!/usr/bin/env python3
"""
FSS-Mini-RAG Troubleshooting Tool
A beginner-friendly troubleshooting tool that checks your setup
and helps identify what's working and what needs attention.
Run with: python3 tests/troubleshoot.py
"""
import subprocess
import sys
from pathlib import Path
# Add project to path
sys.path.insert(0, str(Path(__file__).parent.parent))
def main():
"""Run comprehensive troubleshooting checks."""
print("🔧 FSS-Mini-RAG Troubleshooting Tool")
print("=" * 50)
print("This tool checks your setup and helps fix common issues.")
print()
# Menu of available tests
print("Available tests:")
print(" 1. Full Ollama Integration Test")
print(" 2. Smart Ranking Test")
print(" 3. Basic System Validation")
print(" 4. All Tests (recommended)")
print()
choice = input("Select test (1-4, or Enter for all): ").strip()
if choice == "1" or choice == "" or choice == "4":
print("\n" + "🤖 OLLAMA INTEGRATION TESTS".center(50, "="))
run_test("test_ollama_integration.py")
if choice == "2" or choice == "" or choice == "4":
print("\n" + "🧮 SMART RANKING TESTS".center(50, "="))
run_test("test_smart_ranking.py")
if choice == "3" or choice == "" or choice == "4":
print("\n" + "🔍 SYSTEM VALIDATION TESTS".center(50, "="))
run_test("03_system_validation.py")
print("\n" + "✅ TROUBLESHOOTING COMPLETE".center(50, "="))
print("💡 If you're still having issues:")
print(" • Check docs/QUERY_EXPANSION.md for setup help")
print(" • Ensure Ollama is installed: https://ollama.ai/download")
print(" • Start Ollama server: ollama serve")
print(" • Install models: ollama pull qwen3:4b")
def run_test(test_file):
"""Run a specific test file."""
test_path = Path(__file__).parent / test_file
if not test_path.exists():
print(f"❌ Test file not found: {test_file}")
return
try:
# Run the test
result = subprocess.run(
[sys.executable, str(test_path)], capture_output=True, text=True, timeout=60
)
# Show output
if result.stdout:
print(result.stdout)
if result.stderr:
print("STDERR:", result.stderr)
if result.returncode == 0:
print(f"{test_file} completed successfully!")
else:
print(f"⚠️ {test_file} had some issues (return code: {result.returncode})")
except subprocess.TimeoutExpired:
print(f"{test_file} timed out after 60 seconds")
except Exception as e:
print(f"❌ Error running {test_file}: {e}")
if __name__ == "__main__":
main()