From d760e25b639b491e353ada14aa27d21654729928 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Tue, 7 Dec 2021 17:43:57 +0530 Subject: [PATCH] tests: fix newsletter tests --- .../doctype/newsletter/test_newsletter.py | 57 ++++++------------- 1 file changed, 16 insertions(+), 41 deletions(-) diff --git a/frappe/email/doctype/newsletter/test_newsletter.py b/frappe/email/doctype/newsletter/test_newsletter.py index abbcc6440c..8c1f803a46 100644 --- a/frappe/email/doctype/newsletter/test_newsletter.py +++ b/frappe/email/doctype/newsletter/test_newsletter.py @@ -14,7 +14,6 @@ from frappe.email.doctype.newsletter.exceptions import ( from frappe.email.doctype.newsletter.newsletter import ( Newsletter, confirmed_unsubscribe, - get_newsletter_list, send_scheduled_email ) from frappe.email.queue import flush @@ -101,7 +100,8 @@ class TestNewsletterMixin: doctype = "Newsletter" newsletter_content = { "subject": "_Test Newsletter", - "send_from": "Test Sender ", + "sender_name": "Test Sender", + "sender_email": "test_sender@example.com", "content_type": "Rich Text", "message": "Testing my news.", } @@ -157,21 +157,6 @@ class TestNewsletter(TestNewsletterMixin, unittest.TestCase): if email != to_unsubscribe: self.assertTrue(email in recipients) - def test_portal(self): - self.send_newsletter(published=1) - frappe.set_user("test1@example.com") - newsletter_list = get_newsletter_list("Newsletter", None, None, 0) - self.assertEqual(len(newsletter_list), 1) - - def test_newsletter_context(self): - context = frappe._dict() - newsletter_name = self.send_newsletter(published=1) - frappe.set_user("test2@example.com") - doc = frappe.get_doc("Newsletter", newsletter_name) - doc.get_context(context) - self.assertEqual(context.no_cache, 1) - self.assertTrue("attachments" not in list(context)) - def test_schedule_send(self): self.send_newsletter(schedule_send=add_days(getdate(), -1)) @@ -181,26 +166,32 @@ class TestNewsletter(TestNewsletterMixin, unittest.TestCase): for email in emails: self.assertTrue(email in recipients) - def test_newsletter_test_send(self): - """Test "Test Send" functionality of Newsletter + def test_newsletter_send_test_email(self): + """Test "Send Test Email" functionality of Newsletter """ newsletter = self.get_newsletter() - newsletter.test_email_id = choice(emails) - newsletter.test_send() + test_email = choice(emails) + newsletter.send_test_email(test_email) self.assertFalse(newsletter.email_sent) newsletter.save = MagicMock() self.assertFalse(newsletter.save.called) + # check if the test email is in the queue + email_queue = frappe.db.get_all('Email Queue', filters=[ + ['reference_doctype', '=', 'Newsletter'], + ['reference_name', '=', newsletter.name], + ['Email Queue Recipient', 'recipient', '=', test_email] + ]) + self.assertTrue(email_queue) def test_newsletter_status(self): """Test for Newsletter's stats on onload event """ newsletter = self.get_newsletter() newsletter.email_sent = True - # had to use run_onload as calling .onload directly bought weird errors - # like TestNewsletter has no attribute "_TestNewsletter__onload" - run_onload(newsletter) - self.assertIsInstance(newsletter.get("__onload").status_count, dict) + result = newsletter.get_sending_status() + self.assertTrue('total' in result) + self.assertTrue('sent' in result) def test_already_sent_newsletter(self): newsletter = self.get_newsletter() @@ -218,22 +209,6 @@ class TestNewsletter(TestNewsletterMixin, unittest.TestCase): with self.assertRaises(NoRecipientFoundError): newsletter.send_emails() - def test_send_newsletter_with_attachments(self): - newsletter = self.get_newsletter() - newsletter.reload() - file_attachment = frappe.get_doc({ - "doctype": "File", - "file_name": "test1.txt", - "attached_to_doctype": newsletter.doctype, - "attached_to_name": newsletter.name, - "content": frappe.mock("paragraph") - }) - file_attachment.save() - newsletter.send_attachments = True - newsletter_attachments = newsletter.get_newsletter_attachments() - self.assertEqual(len(newsletter_attachments), 1) - self.assertEqual(newsletter_attachments[0]["fid"], file_attachment.name) - def test_send_scheduled_email_error_handling(self): newsletter = self.get_newsletter(schedule_send=add_days(getdate(), -1)) job_path = "frappe.email.doctype.newsletter.newsletter.Newsletter.queue_all"