feat: Implement complete RSS news fetching system with multi-source support

This commit is contained in:
Aherobo Ovie Victor
2025-07-07 18:31:38 +01:00
parent c158262a49
commit e188af8b17
22 changed files with 2210 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
"""Test the complete DS Task AI News system"""
import sys
import os
sys.path.append('backend')
def test_imports():
"""Test if all modules can be imported"""
try:
from config import settings
print("✅ Config imported successfully")
from news_fetcher import NewsFetcher
print("✅ NewsFetcher imported successfully")
# Test basic functionality
fetcher = NewsFetcher()
print(f"✅ NewsFetcher initialized - Raw news dir: {fetcher.raw_news_dir}")
return True
except Exception as e:
print(f"❌ Import error: {e}")
return False
def test_rss_fetching():
"""Test RSS fetching functionality"""
try:
sys.path.append('backend')
from news_fetcher import NewsFetcher
fetcher = NewsFetcher()
# Test with one feed
articles = fetcher.fetch_rss_feed("https://feeds.bbci.co.uk/news/rss.xml")
if articles:
print(f"✅ RSS fetching works - Got {len(articles)} articles")
print(f" Sample article: {articles[0]['title'][:50]}...")
return True
else:
print("❌ No articles fetched")
return False
except Exception as e:
print(f"❌ RSS fetching error: {e}")
return False
def main():
"""Run all tests"""
print("🚀 Testing DS Task AI News System")
print("=" * 50)
# Test 1: Imports
print("\n1. Testing imports...")
import_success = test_imports()
# Test 2: RSS Fetching
print("\n2. Testing RSS fetching...")
rss_success = test_rss_fetching()
# Summary
print("\n" + "=" * 50)
print("📊 Test Summary:")
print(f" Imports: {'✅ PASS' if import_success else '❌ FAIL'}")
print(f" RSS Fetching: {'✅ PASS' if rss_success else '❌ FAIL'}")
if import_success and rss_success:
print("\n🎉 System is ready for demo!")
else:
print("\n⚠️ Some components need attention")
if __name__ == "__main__":
main()