Browse Source

Merge pull request #292 from Tecnativa/9.0-fix-mail_tracking_mailgun-domain

[FIX] mail_tracking_mailgun: alternative domain
pull/295/head
Pedro M. Baeza 7 years ago
committed by GitHub
parent
commit
d8fa407268
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      mail_tracking_mailgun/README.rst
  2. 2
      mail_tracking_mailgun/__openerp__.py
  3. 3
      mail_tracking_mailgun/models/mail_tracking_email.py
  4. 12
      mail_tracking_mailgun/tests/test_mailgun.py

2
mail_tracking_mailgun/README.rst

@ -36,6 +36,8 @@ parameters:
domain. domain.
- `mailgun.api_url`: It should be fine as it is, but it could change in the - `mailgun.api_url`: It should be fine as it is, but it could change in the
future. future.
- `mailgun.domain`: In case your sending domain is different from the one
configured in `mail.catchall.domain`.
- `mailgun.validation_key`: If you want to be able to check mail address - `mailgun.validation_key`: If you want to be able to check mail address
validity you must config this parameter with your account Public Validation validity you must config this parameter with your account Public Validation
Key. Key.

2
mail_tracking_mailgun/__openerp__.py

@ -7,7 +7,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": "9.0.1.2.1",
"version": "9.0.1.3.0",
"category": "Social Network", "category": "Social Network",
"website": "https://odoo-community.org/", "website": "https://odoo-community.org/",
"author": "Tecnativa, " "author": "Tecnativa, "

3
mail_tracking_mailgun/models/mail_tracking_email.py

@ -71,7 +71,8 @@ class MailTrackingEmail(models.Model):
raise ValidationError(_('There is no Mailgun API key!')) raise ValidationError(_('There is no Mailgun API key!'))
api_url = icp.get_param( api_url = icp.get_param(
'mailgun.api_url', 'https://api.mailgun.net/v3') 'mailgun.api_url', 'https://api.mailgun.net/v3')
domain = icp.get_param('mail.catchall.domain')
catchall_domain = icp.get_param('mail.catchall.domain')
domain = icp.get_param('mailgun.domain', catchall_domain)
if not domain: if not domain:
raise ValidationError(_('A Mailgun domain value is needed!')) raise ValidationError(_('A Mailgun domain value is needed!'))
validation_key = icp.get_param('mailgun.validation_key') validation_key = icp.get_param('mailgun.validation_key')

12
mail_tracking_mailgun/tests/test_mailgun.py

@ -102,6 +102,11 @@ class TestMailgun(TransactionCase):
self.test_event_delivered() self.test_event_delivered()
with self.assertRaises(ValidationError): with self.assertRaises(ValidationError):
self.env['mail.tracking.email']._mailgun_values() self.env['mail.tracking.email']._mailgun_values()
# now we set an specific domain for Mailgun:
# i.e: we configure new EU zone without loosing old domain statistics
self.env['ir.config_parameter'].set_param(
'mailgun.domain', 'eu.example.com')
self.test_event_delivered()
def test_bad_signature(self): def test_bad_signature(self):
self.event.update({ self.event.update({
@ -159,9 +164,10 @@ class TestMailgun(TransactionCase):
response = self.env['mail.tracking.email'].event_process( response = self.env['mail.tracking.email'].event_process(
None, self.event, self.metadata) None, self.event, self.metadata)
self.assertEqual('OK', response) self.assertEqual('OK', response)
event = self.event_search('delivered')
self.assertEqual(event.timestamp, float(self.timestamp))
self.assertEqual(event.recipient, self.recipient)
events = self.event_search('delivered')
for event in events:
self.assertEqual(event.timestamp, float(self.timestamp))
self.assertEqual(event.recipient, self.recipient)
# https://documentation.mailgun.com/user_manual.html#tracking-opens # https://documentation.mailgun.com/user_manual.html#tracking-opens
def test_event_opened(self): def test_event_opened(self):

Loading…
Cancel
Save