diff --git a/partner_email_check/__manifest__.py b/partner_email_check/__manifest__.py index 3ebb7dcae..ff0f99926 100644 --- a/partner_email_check/__manifest__.py +++ b/partner_email_check/__manifest__.py @@ -3,7 +3,7 @@ { 'name': 'Email Format Checker', - 'version': '11.0.1.0.1', + 'version': '11.0.1.1.0', 'summary': 'Validate email address field', 'author': "Komit, Odoo Community Association (OCA)", 'website': 'https://github.com/OCA/partner-contact', diff --git a/partner_email_check/models/res_partner.py b/partner_email_check/models/res_partner.py index c343ea70d..00d550b5e 100644 --- a/partner_email_check/models/res_partner.py +++ b/partner_email_check/models/res_partner.py @@ -4,6 +4,7 @@ import logging from odoo import api, models, _ from odoo.exceptions import UserError, ValidationError +from odoo.tools import config _logger = logging.getLogger(__name__) @@ -24,6 +25,9 @@ class ResPartner(models.Model): @api.model def email_check(self, emails): + if (config['test_enable'] and + not self.env.context.get('test_partner_email_check')): + return emails return ','.join(self._normalize_email(email.strip()) for email in emails.split(',')) diff --git a/partner_email_check/tests/test_partner_email_check.py b/partner_email_check/tests/test_partner_email_check.py index ee3dc08b6..0b4d72d17 100644 --- a/partner_email_check/tests/test_partner_email_check.py +++ b/partner_email_check/tests/test_partner_email_check.py @@ -11,7 +11,11 @@ from odoo.tools.misc import mute_logger class TestPartnerEmailCheck(TransactionCase): def setUp(self): super(TestPartnerEmailCheck, self).setUp() - self.test_partner = self.env['res.partner'].create({ + # Checks are disabled during tests unless this key is set + self.res_partner = self.env['res.partner'].with_context( + test_partner_email_check=True + ) + self.test_partner = self.res_partner.create({ 'name': 'test', }) self.wizard = self.env['res.config.settings'].create({}) @@ -76,14 +80,14 @@ class TestPartnerEmailCheck(TransactionCase): self.disallow_duplicates() self.test_partner.write({'email': 'email@domain.tld'}) with self.assertRaises(ValidationError): - self.env['res.partner'].create({ + self.res_partner.create({ 'name': 'alsotest', 'email': 'email@domain.tld' }) def test_duplicate_after_normalization_addresses_disallowed(self): self.disallow_duplicates() - self.env['res.partner'].create({ + self.res_partner.create({ 'name': 'alsotest', 'email': 'email@doMAIN.tld' }) @@ -96,7 +100,7 @@ class TestPartnerEmailCheck(TransactionCase): self.test_partner.email = 'foo@bar.org,email@domain.tld' def test_duplicate_addresses_allowed_by_default(self): - self.env['res.partner'].create({ + self.res_partner.create({ 'name': 'alsotest', 'email': 'email@domain.tld', }) @@ -141,9 +145,17 @@ class TestPartnerEmailCheck(TransactionCase): self.disallow_duplicates() with patch('odoo.addons.partner_email_check.models.res_partner.' 'validate_email', None): - self.env['res.partner'].create({ + self.res_partner.create({ 'name': 'alsotest', 'email': 'email@domain.tld' }) with self.assertRaises(ValidationError): self.test_partner.email = 'email@domain.tld' + + def test_invalid_email_addresses_allowed_during_tests(self): + # Note: testing without test_partner_email_check in the context + new_partner = self.env['res.partner'].create({ + 'name': 'invalidly emailed', + 'email': 'invalid' + }) + self.assertEqual('invalid', new_partner.email)