Files
workdock-platform/backend/workflows/tests/test_emailing_fallback.py
2026-03-19 10:22:20 +01:00

44 lines
1.5 KiB
Python

from unittest.mock import MagicMock, patch
from django.test import TestCase
from workflows.models import WorkflowConfig
from workflows.emailing import send_system_email
class EmailingFallbackTests(TestCase):
@patch('workflows.emailing.EmailMessage')
@patch('workflows.emailing.get_connection')
def test_uses_workflowconfig_smtp_when_no_active_system_config(self, mock_get_connection, mock_email_message):
WorkflowConfig.objects.update_or_create(
name='Default',
defaults={
'smtp_server': 'mx.tub.co',
'smtp_port': 465,
'email_account': 'onboarding@tub.co',
'email_password': 'secret',
'smtp_use_ssl': True,
'smtp_use_tls': False,
},
)
fake_connection = object()
mock_get_connection.return_value = fake_connection
msg_instance = MagicMock()
mock_email_message.return_value = msg_instance
send_system_email(
subject='x',
body='y',
to=['target@example.com'],
)
self.assertEqual(mock_get_connection.call_count, 1)
kwargs = mock_get_connection.call_args.kwargs
self.assertEqual(kwargs['host'], 'mx.tub.co')
self.assertEqual(kwargs['port'], 465)
self.assertEqual(kwargs['username'], 'onboarding@tub.co')
self.assertEqual(kwargs['password'], 'secret')
self.assertEqual(kwargs['use_ssl'], True)
self.assertEqual(kwargs['use_tls'], False)