diff --git a/tests/test_email_script.py b/tests/test_email_script.py index 7786b045..db836852 100644 --- a/tests/test_email_script.py +++ b/tests/test_email_script.py @@ -1,8 +1,7 @@ from tests.base_test import BaseTest -from crc import mail, session -from crc.models.study import StudyModel +from crc import mail +from crc.services.file_service import FileService from crc.services.study_service import StudyService -import json class TestEmailScript(BaseTest): @@ -20,17 +19,21 @@ class TestEmailScript(BaseTest): with mail.record_messages() as outbox: workflow = self.create_workflow('email_script') - first_task = self.get_workflow_api(workflow).next_task - - self.complete_form(workflow, first_task, {'subject': 'My Email Subject', 'recipients': 'test@example.com'}) + self.complete_form(workflow, first_task, {'subject': 'My Email Subject', 'recipients': 'test@example.com', + 'cc': 'cc@example.com', 'bcc': 'bcc@example.com', + 'reply_to': 'reply_to@example.com'}) self.assertEqual(1, len(outbox)) self.assertEqual('My Email Subject', outbox[0].subject) self.assertEqual(['test@example.com'], outbox[0].recipients) + self.assertEqual(['cc@example.com'], outbox[0].cc) + self.assertEqual(['bcc@example.com'], outbox[0].bcc) + self.assertEqual('reply_to@example.com', outbox[0].reply_to) self.assertIn('Thank you for using this email example', outbox[0].body) def test_email_script_multiple(self): + self.load_example_data() with mail.record_messages() as outbox: workflow = self.create_workflow('email_script') @@ -80,19 +83,30 @@ class TestEmailScript(BaseTest): self.assertIn(outbox[0].recipients[1], ['user@example.com', 'dhf8r@virginia.edu', 'lb3dp@virginia.edu']) self.assertIn(outbox[0].recipients[2], ['user@example.com', 'dhf8r@virginia.edu', 'lb3dp@virginia.edu']) - def test_email_script_cc(self): + def test_email_script_attachments(self): + self.load_example_data() + irb_code_1 = 'Study_App_Doc' + irb_code_2 = 'Study_Protocol_Document' + workflow = self.create_workflow('email_script') workflow_api = self.get_workflow_api(workflow) - self.create_user(uid='lb3dp', email='lb3dp@virginia.edu', display_name='Laura Barnes') - StudyService.update_study_associates(workflow.study_id, - [{'uid': 'dhf8r', 'role': 'Chief Bee Keeper', 'send_email': True, 'access': True}, - {'uid': 'lb3dp', 'role': 'Chief Cat Herder', 'send_email': True, 'access': True}]) + + FileService.add_workflow_file(workflow_id=workflow.id, + name="something.png", content_type="text", + binary_data=b'1234', irb_doc_code=irb_code_1) + FileService.add_workflow_file(workflow_id=workflow.id, + name="another.png", content_type="text", + binary_data=b'67890', irb_doc_code=irb_code_1) + FileService.add_workflow_file(workflow_id=workflow.id, + name="anything.png", content_type="text", + binary_data=b'5678', irb_doc_code=irb_code_2) + first_task = workflow_api.next_task with mail.record_messages() as outbox: - - self.complete_form(workflow, first_task, {'subject': 'My Test Subject', 'recipients': 'user@example.com', 'cc': 'associated'}) - + self.complete_form(workflow, first_task, {'subject': 'My Test Subject', 'recipients': 'user@example.com', + 'doc_codes': [{'doc_code': irb_code_1}, {'doc_code': irb_code_2}]}) self.assertEqual(1, len(outbox)) - self.assertEqual('user@example.com', outbox[0].recipients[0]) - self.assertIn(outbox[0].cc[0], ['dhf8r@virginia.edu', 'lb3dp@virginia.edu']) - self.assertIn(outbox[0].cc[1], ['dhf8r@virginia.edu', 'lb3dp@virginia.edu']) + self.assertEqual(3, len(outbox[0].attachments)) + self.assertEqual('image/png', outbox[0].attachments[0].content_type) + self.assertEqual('something.png', outbox[0].attachments[0].filename) + self.assertEqual(b'1234', outbox[0].attachments[0].data)