import uuid from sqlalchemy.orm import Session from app.crud.entries import create_entry from app.crud.newsletters import create_newsletter from app.schemas.entries import EntryCreate from app.schemas.newsletters import NewsletterCreate from app.services.feed_generator import generate_feed def test_generate_feed(db_session: Session): """Test the feed generation for a newsletter with entries.""" # Create a newsletter newsletter_data = NewsletterCreate( name="Feed Test Newsletter", sender_emails=["feed@example.com"] ) newsletter = create_newsletter(db_session, newsletter_data) # Create entries for the newsletter entry1_data = EntryCreate( subject="First Entry", body="
This is the first entry.
", message_id=f"<{uuid.uuid4()}@test.com>", ) create_entry(db_session, entry1_data, newsletter.id) entry2_data = EntryCreate( subject="Second Entry", body="This is the second entry.
", message_id=f"<{uuid.uuid4()}@test.com>", ) create_entry(db_session, entry2_data, newsletter.id) # Generate the feed feed_xml = generate_feed(db_session, newsletter.id) assert feed_xml is not None # Parse the feed XML to verify content (simplified check) # In a real scenario, you'd use an XML parser to validate structure and content more thoroughly assert f"