Пример #1
0
	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"
		m = MagicMock(side_effect=frappe.OutgoingEmailError)

		with self.assertRaises(frappe.OutgoingEmailError):
			with patch(job_path, new_callable=m):
				send_scheduled_email()

		newsletter.reload()
		self.assertEqual(newsletter.email_sent, 0)
Пример #2
0
	def send_newsletter(self, published=0, schedule_send=None) -> Union[str, None]:
		frappe.db.delete("Email Queue")
		frappe.db.delete("Email Queue Recipient")
		frappe.db.delete("Newsletter")

		newsletter_options = {
			"published": published,
			"schedule_sending": bool(schedule_send),
			"schedule_send": schedule_send
		}
		newsletter = self.get_newsletter(**newsletter_options)

		if schedule_send:
			send_scheduled_email()
		else:
			newsletter.send_emails()
			return newsletter.name
Пример #3
0
	def send_newsletter(published=0, schedule_send=None):
		frappe.db.sql("delete from `tabEmail Queue`")
		frappe.db.sql("delete from `tabEmail Queue Recipient`")
		frappe.db.sql("delete from `tabNewsletter`")
		newsletter = frappe.get_doc({
			"doctype": "Newsletter",
			"subject": "_Test Newsletter",
			"send_from": "Test Sender <*****@*****.**>",
			"message": "Testing my news.",
			"published": published,
			"schedule_send": schedule_send
		}).insert(ignore_permissions=True)

		newsletter.append("email_group", {"email_group": "_Test Email Group"})
		newsletter.save()
		if schedule_send:
			send_scheduled_email()
			return

		newsletter.send_emails()
		return newsletter.name