[MIG] mail_tracking_mailgun: Migration to 15.0
This commit is contained in:
parent
df3453c4b4
commit
d2792da8c5
@ -6,7 +6,7 @@
|
|||||||
{
|
{
|
||||||
"name": "Mail tracking for Mailgun",
|
"name": "Mail tracking for Mailgun",
|
||||||
"summary": "Mail tracking and Mailgun webhooks integration",
|
"summary": "Mail tracking and Mailgun webhooks integration",
|
||||||
"version": "14.0.2.0.0",
|
"version": "15.0.1.0.0",
|
||||||
"category": "Social Network",
|
"category": "Social Network",
|
||||||
"website": "https://github.com/OCA/social",
|
"website": "https://github.com/OCA/social",
|
||||||
"author": "Tecnativa, Odoo Community Association (OCA)",
|
"author": "Tecnativa, Odoo Community Association (OCA)",
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
# Copyright 2021 Tecnativa - Jairo Llopis
|
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
import logging
|
|
||||||
|
|
||||||
from openupgradelib import openupgrade
|
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
@openupgrade.migrate()
|
|
||||||
def migrate(env, version):
|
|
||||||
"""Update webhooks.
|
|
||||||
|
|
||||||
This version dropped support for legacy webhooks and added support for
|
|
||||||
webhook auto registering. Do that process now.
|
|
||||||
"""
|
|
||||||
if version != "14.0.1.0.0":
|
|
||||||
return
|
|
||||||
settings = env["res.config.settings"].create({})
|
|
||||||
if not settings.mail_tracking_mailgun_enabled:
|
|
||||||
_logger.warning("Not updating webhooks because mailgun is not configured")
|
|
||||||
return
|
|
||||||
_logger.info("Updating mailgun webhooks")
|
|
||||||
try:
|
|
||||||
settings.mail_tracking_mailgun_unregister_webhooks()
|
|
||||||
settings.mail_tracking_mailgun_register_webhooks()
|
|
||||||
except Exception:
|
|
||||||
# Don't fail the update if you can't register webhooks; it can be a
|
|
||||||
# failing network condition or air-gapped upgrade, and that's OK, you
|
|
||||||
# can just update them later
|
|
||||||
_logger.warning(
|
|
||||||
"Failed to update mailgun webhooks; do that manually", exc_info=True
|
|
||||||
)
|
|
@ -32,11 +32,9 @@ class ResPartner(models.Model):
|
|||||||
event.id or 0,
|
event.id or 0,
|
||||||
event.id or _("unknown"),
|
event.id or _("unknown"),
|
||||||
)
|
)
|
||||||
body = _("Email has been bounced: %s\nReason: %s\nEvent: %s") % (
|
body = _(
|
||||||
partner.email,
|
"Email has been bounced: %(email)s\nReason: %(reason)s\nEvent: %(event_str)s"
|
||||||
reason,
|
) % ({"email": partner.email, "reason": reason, "event_str": event_str})
|
||||||
event_str,
|
|
||||||
)
|
|
||||||
partner.message_post(body=body)
|
partner.message_post(body=body)
|
||||||
|
|
||||||
def check_email_validity(self):
|
def check_email_validity(self):
|
||||||
|
@ -398,6 +398,9 @@ class TestMailgun(TransactionCase):
|
|||||||
}
|
}
|
||||||
with self.assertRaises(UserError):
|
with self.assertRaises(UserError):
|
||||||
self.partner.check_email_validity()
|
self.partner.check_email_validity()
|
||||||
|
# If we autocheck, the mail will be bounced
|
||||||
|
self.partner.with_context(mailgun_auto_check=True).check_email_validity()
|
||||||
|
self.assertTrue(self.partner.email_bounced)
|
||||||
# Unable to fully validate
|
# Unable to fully validate
|
||||||
mock_request.get.return_value.json.return_value = {
|
mock_request.get.return_value.json.return_value = {
|
||||||
"is_valid": True,
|
"is_valid": True,
|
||||||
@ -405,7 +408,6 @@ class TestMailgun(TransactionCase):
|
|||||||
}
|
}
|
||||||
with self.assertRaises(UserError):
|
with self.assertRaises(UserError):
|
||||||
self.partner.check_email_validity()
|
self.partner.check_email_validity()
|
||||||
self.assertTrue(self.partner.email_bounced)
|
|
||||||
|
|
||||||
@mock.patch(_packagepath + ".models.res_partner.requests")
|
@mock.patch(_packagepath + ".models.res_partner.requests")
|
||||||
def test_email_validity_exceptions(self, mock_request):
|
def test_email_validity_exceptions(self, mock_request):
|
||||||
|
Loading…
Reference in New Issue
Block a user