Files
Munich-news/scripts/test-mongodb-connectivity.sh
2025-11-16 20:59:14 +01:00

56 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
echo "=========================================="
echo "MongoDB Connectivity Test"
echo "=========================================="
echo ""
# Test 1: MongoDB not accessible from host
echo "Test 1: MongoDB port not exposed to host"
if nc -z -w 2 localhost 27017 2>&1 | grep -q "succeeded\|open"; then
echo "❌ FAIL: Port 27017 is accessible from host"
else
echo "✅ PASS: Port 27017 is not accessible from host (internal only)"
fi
echo ""
# Test 2: Backend can connect
echo "Test 2: Backend can connect to MongoDB"
if docker-compose exec -T backend python -c "from database import articles_collection; articles_collection.count_documents({})" &> /dev/null; then
echo "✅ PASS: Backend can connect to MongoDB"
else
echo "❌ FAIL: Backend cannot connect to MongoDB"
fi
echo ""
# Test 3: Crawler can connect
echo "Test 3: Crawler can connect to MongoDB"
if docker-compose exec -T crawler python -c "from pymongo import MongoClient; from config import Config; MongoClient(Config.MONGODB_URI).server_info()" &> /dev/null; then
echo "✅ PASS: Crawler can connect to MongoDB"
else
echo "❌ FAIL: Crawler cannot connect to MongoDB"
fi
echo ""
# Test 4: Sender can connect
echo "Test 4: Sender can connect to MongoDB"
if docker-compose exec -T sender python -c "from pymongo import MongoClient; import os; MongoClient(os.getenv('MONGODB_URI')).server_info()" &> /dev/null; then
echo "✅ PASS: Sender can connect to MongoDB"
else
echo "❌ FAIL: Sender cannot connect to MongoDB"
fi
echo ""
# Test 5: Backend API accessible
echo "Test 5: Backend API accessible from host"
if curl -s http://localhost:5001/health | grep -q "healthy"; then
echo "✅ PASS: Backend API is accessible"
else
echo "❌ FAIL: Backend API is not accessible"
fi
echo ""
echo "=========================================="
echo "Test Complete"
echo "=========================================="