fix(email): create missing email template and decouple email destination settings

- Create app/templates/email/default.html (fixes 'default.html not found' error)
- Add DEST_EMAIL_* settings to app/config.py (decoupled from shared EMAIL_* settings)
- Update upload_to_email task to use dest_email_* settings exclusively
- Update _should_upload_to_email() to check dest_email_* settings
- Update config validator, providers, and settings_service for dest_email_*
- Update .env.demo and docs/ConfigurationGuide.md
- Update all tests to use dest_email_* settings where appropriate"

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-08 10:10:18 +00:00
parent 4857203d08
commit 58c9b5d7f0
14 changed files with 260 additions and 82 deletions
+7 -7
View File
@@ -75,13 +75,13 @@ class TestValidateStorageConfigs:
assert "Neither SFTP_KEY_PATH nor SFTP_PASSWORD is configured" in result["sftp"]
def test_email_storage_missing_config(self):
"""Test validation when email storage config is missing."""
"""Test validation when email destination storage config is missing."""
with patch("app.utils.config_validator.validators.settings") as mock_settings:
mock_settings.email_host = None
mock_settings.email_default_recipient = None
mock_settings.dest_email_host = None
mock_settings.dest_email_default_recipient = None
result = validate_storage_configs()
assert "EMAIL_HOST is not configured" in result["email"]
assert "EMAIL_DEFAULT_RECIPIENT is not configured" in result["email"]
assert "DEST_EMAIL_HOST is not configured" in result["email"]
assert "DEST_EMAIL_DEFAULT_RECIPIENT is not configured" in result["email"]
@pytest.mark.unit
@@ -438,8 +438,8 @@ class TestValidateStorageConfigsEdgeCases:
# Configure all services
mock_settings.sftp_host = "sftp.example.com"
mock_settings.sftp_password = "pass"
mock_settings.email_host = "smtp.example.com"
mock_settings.email_default_recipient = "test@example.com"
mock_settings.dest_email_host = "smtp.example.com"
mock_settings.dest_email_default_recipient = "test@example.com"
mock_settings.s3_bucket_name = "my-bucket"
mock_settings.aws_access_key_id = "key"
mock_settings.aws_secret_access_key = "secret"