"""Pytest configuration and fixtures for imap2caldav tests.""" import pytest import sys from pathlib import Path # Add parent directory to path for imports sys.path.insert(0, str(Path(__file__).parent.parent)) @pytest.fixture def default_config(): """Return a default configuration dictionary for testing.""" return { 'IMAP_SERVER': 'imap.test.com', 'IMAP_PORT': 993, 'IMAP_EMAIL': 'test@test.com', 'IMAP_PASSWORD': 'testpass', 'IMAP_MAILBOX': 'INBOX', 'IMAP_PROCESSED_FOLDER': 'Processed', 'IMAP_USE_SSL': True, 'IMAP_USE_STARTTLS': False, 'IMAP_VERIFY_SSL': True, 'CALDAV_URL': 'https://caldav.test.com/dav', 'CALDAV_USERNAME': 'testuser', 'CALDAV_PASSWORD': 'testpass', 'CALENDAR_NAME': 'personal', 'CALDAV_VERIFY_SSL': True, 'MARK_AS_SEEN': True, 'MOVE_PROCESSED': False, 'CHECK_INTERVAL': 300, 'RUN_ONCE': True, 'SUMMARY_FILTER': '', 'SUMMARY_FILTER_MODE': 'contains', 'INVERT_FILTER': False, 'DEDUPE_ENABLED': False, 'DEDUPE_BY_SUMMARY_PATTERN': '', 'LOG_LEVEL': 'WARNING', } @pytest.fixture def sample_ics(): """Return a sample ICS calendar event.""" return """BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Test//Test//EN BEGIN:VEVENT UID:test-event-123@test.com DTSTART:20240115T100000Z DTEND:20240115T110000Z SUMMARY:Test Meeting DESCRIPTION:This is a test event END:VEVENT END:VCALENDAR""" @pytest.fixture def sample_ics_no_summary(): """Return a sample ICS calendar event without a summary.""" return """BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Test//Test//EN BEGIN:VEVENT UID:no-summary-456@test.com DTSTART:20240115T100000Z DTEND:20240115T110000Z END:VEVENT END:VCALENDAR""" @pytest.fixture def sample_html_with_product_table(): """Return sample HTML email body with a product table.""" return """
Your order details:
| Product | Quantity | Price |
|---|---|---|
| Widget A | 2 | $10.00 |
| Widget B | 5 | $25.00 |
This is a regular email without a product table.
"""