Holger Brunn
10 years ago
2 changed files with 124 additions and 0 deletions
-
21fetchmail_attach_from_folder/tests/__init__.py
-
103fetchmail_attach_from_folder/tests/test_match_algorithms.py
@ -0,0 +1,21 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# OpenERP, Open Source Management Solution |
||||
|
# This module copyright (C) 2015 Therp BV (<http://therp.nl>). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Affero General Public License as |
||||
|
# published by the Free Software Foundation, either version 3 of the |
||||
|
# License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU Affero General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Affero General Public License |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
from . import test_match_algorithms |
@ -0,0 +1,103 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################## |
||||
|
# |
||||
|
# OpenERP, Open Source Management Solution |
||||
|
# This module copyright (C) 2015 Therp BV (<http://therp.nl>). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Affero General Public License as |
||||
|
# published by the Free Software Foundation, either version 3 of the |
||||
|
# License, or (at your option) any later version. |
||||
|
# |
||||
|
# This program is distributed in the hope that it will be useful, |
||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
|
# GNU Affero General Public License for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Affero General Public License |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################## |
||||
|
from openerp import models |
||||
|
from openerp.tests.common import TransactionCase |
||||
|
from openerp.addons.fetchmail_attach_from_folder.match_algorithm import ( |
||||
|
email_exact, email_domain, openerp_standard) |
||||
|
|
||||
|
|
||||
|
class TestMatchAlgorithms(TransactionCase): |
||||
|
def do_matching(self, match_algorithm, expected_xmlid, conf, mail_message, |
||||
|
mail_message_org=None): |
||||
|
matcher = match_algorithm() |
||||
|
matches = matcher.search_matches( |
||||
|
self.env.cr, self.env.uid, conf, mail_message, mail_message_org) |
||||
|
self.assertEqual(len(matches), 1) |
||||
|
self.assertEqual( |
||||
|
matches[0], self.env.ref(expected_xmlid).id) |
||||
|
matcher.handle_match( |
||||
|
self.env.cr, self.env.uid, None, matches[0], conf, mail_message, |
||||
|
mail_message_org, None) |
||||
|
|
||||
|
def test_email_exact(self): |
||||
|
mail_message = { |
||||
|
'subject': 'Testsubject', |
||||
|
'to': 'demo@yourcompany.example.com', |
||||
|
'from': 'someone@else.com', |
||||
|
} |
||||
|
conf = self.env['fetchmail.server.folder'].browse([models.NewId()]) |
||||
|
conf.model_id = self.env.ref('base.model_res_partner').id |
||||
|
conf.model_field = 'email' |
||||
|
conf.match_algorithm = 'email_exact' |
||||
|
conf.mail_field = 'to,from' |
||||
|
conf.server_id = self.env['fetchmail.server'].browse([models.NewId()]) |
||||
|
self.do_matching( |
||||
|
email_exact.email_exact, 'base.user_demo_res_partner', |
||||
|
conf, mail_message) |
||||
|
self.assertEqual( |
||||
|
self.env.ref('base.user_demo_res_partner').message_ids.subject, |
||||
|
mail_message['subject']) |
||||
|
|
||||
|
def test_email_domain(self): |
||||
|
mail_message = { |
||||
|
'subject': 'Testsubject', |
||||
|
'to': 'test@seagate.com', |
||||
|
'from': 'someone@else.com', |
||||
|
} |
||||
|
conf = self.env['fetchmail.server.folder'].browse([models.NewId()]) |
||||
|
conf.model_id = self.env.ref('base.model_res_partner').id |
||||
|
conf.model_field = 'email' |
||||
|
conf.match_algorithm = 'email_domain' |
||||
|
conf.mail_field = 'to,from' |
||||
|
conf.use_first_match = True |
||||
|
conf.server_id = self.env['fetchmail.server'].browse([models.NewId()]) |
||||
|
self.do_matching( |
||||
|
email_domain.email_domain, 'base.res_partner_address_31', |
||||
|
conf, mail_message) |
||||
|
self.assertEqual( |
||||
|
self.env.ref('base.res_partner_address_31').message_ids.subject, |
||||
|
mail_message['subject']) |
||||
|
|
||||
|
def test_openerp_standard(self): |
||||
|
mail_message_org = ( |
||||
|
"To: demo@yourcompany.example.com\n" |
||||
|
"From: someone@else.com\n" |
||||
|
"Subject: testsubject\n" |
||||
|
"Message-Id: 42\n" |
||||
|
"Hello world" |
||||
|
) |
||||
|
conf = self.env['fetchmail.server.folder'].browse([models.NewId()]) |
||||
|
conf.model_id = self.env.ref('base.model_res_partner').id |
||||
|
conf.model_field = 'email' |
||||
|
conf.match_algorithm = 'openerp_standard' |
||||
|
conf.mail_field = 'to,from' |
||||
|
conf.server_id = self.env['fetchmail.server'].browse([models.NewId()]) |
||||
|
matcher = openerp_standard.openerp_standard() |
||||
|
matches = matcher.search_matches( |
||||
|
self.env.cr, self.env.uid, conf, None, mail_message_org) |
||||
|
self.assertEqual(len(matches), 1) |
||||
|
matcher.handle_match( |
||||
|
self.env.cr, self.env.uid, None, matches[0], conf, None, |
||||
|
mail_message_org, None, None) |
||||
|
self.assertIn( |
||||
|
'Hello world', |
||||
|
self.env['mail.message'] |
||||
|
.search([('subject', '=', 'testsubject')]).body) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue