tests: fix newsletter tests
This commit is contained in:
parent
ccc65defb6
commit
d760e25b63
1 changed files with 16 additions and 41 deletions
|
|
@ -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 <test_sender@example.com>",
|
||||
"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"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue