44 lines
1.5 KiB
Python
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)
|