diff --git a/addons/crm_partner_assign/__init__.py b/addons/crm_partner_assign/__init__.py index 82109f6b079..69b058dfaf6 100644 --- a/addons/crm_partner_assign/__init__.py +++ b/addons/crm_partner_assign/__init__.py @@ -5,3 +5,4 @@ import crm_partner_assign import crm_lead import wizard import report +from . import tests diff --git a/addons/crm_partner_assign/__openerp__.py b/addons/crm_partner_assign/__openerp__.py index cbb2a398df9..d12abed9484 100644 --- a/addons/crm_partner_assign/__openerp__.py +++ b/addons/crm_partner_assign/__openerp__.py @@ -32,7 +32,6 @@ to an appropriate local partner, based on the distance and the weight that was a 'res_partner_demo.xml', 'crm_lead_demo.xml' ], - 'test': ['test/partner_assign.yml'], 'installable': True, 'auto_install': False, } diff --git a/addons/crm_partner_assign/test/partner_assign.yml b/addons/crm_partner_assign/test/partner_assign.yml deleted file mode 100644 index 35f0adb9b02..00000000000 --- a/addons/crm_partner_assign/test/partner_assign.yml +++ /dev/null @@ -1,37 +0,0 @@ -- - In order to test find nearest Partner functionality and assign to opportunity , -- - I Set Geo Lattitude and Longitude according to partner address. -- - !python {model: res.partner}: | - self.geo_localize(cr, uid, [ref('base.res_partner_2')], context) -- - I check Geo Latitude and Longitude of partner after set -- - !python {model: res.partner}: | - partner = self.browse(cr, uid, ref('base.res_partner_2')) - assert 50 < partner.partner_latitude < 51, "Latitude is wrong: 50 < %s < 51" % partner.partner_latitude - assert 3 < partner.partner_longitude < 5, "Longitude is wrong: 3 < %s < 5" % partner.partner_longitude -- - I assign nearest partner to opportunity. -- - !python {model: crm.lead}: | - self.assign_partner(cr, uid, [ref('crm.crm_case_21')], context=context) -- - I check assigned partner of opportunity who is nearest Geo Latitude and Longitude of opportunity. -- - !python {model: crm.lead}: | - lead = self.browse(cr, uid, ref('crm.crm_case_21')) - assert lead.partner_assigned_id.id == ref('base.res_partner_18') , "Opportuniy is not assigned nearest partner" - assert 50 < lead.partner_latitude < 55, "Latitude is wrong: 50 < %s < 55" % lead.partner_latitude - assert -4 < lead.partner_longitude < -1, "Longitude is wrong: -4 < %s < -1" % lead.partner_longitude -- - I forward this opportunity to its nearest partner. -- - !python {model: crm.lead.forward.to.partner}: | - context.update({'default_model': 'crm.lead', 'default_res_id': ref('crm.crm_case_21'), 'active_ids': [ref('crm.crm_case_21')]}) - forward_id = self.create(cr, uid, {}, context=context) - try: - self.action_forward(cr, uid, [forward_id], context=context) - except: - pass diff --git a/addons/crm_partner_assign/tests/__init__.py b/addons/crm_partner_assign/tests/__init__.py new file mode 100644 index 00000000000..c82b75c4994 --- /dev/null +++ b/addons/crm_partner_assign/tests/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import test_partner_assign diff --git a/addons/crm_partner_assign/tests/test_partner_assign.py b/addons/crm_partner_assign/tests/test_partner_assign.py new file mode 100644 index 00000000000..f94e7abcbdf --- /dev/null +++ b/addons/crm_partner_assign/tests/test_partner_assign.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from mock import patch + +from openerp.tests.common import TransactionCase + + +class TestPartnerAssign(TransactionCase): + + def setUp(self): + super(TestPartnerAssign, self).setUp() + + def geo_find(addr): + return { + u'69 rue de Namur, 1300 Wavre, Belgium': (50.7158956, 4.6128075), + u'Cannon Hill Park, B46 3AG Birmingham, United Kingdom': (52.45216, -1.898578), + }.get(addr) + + patcher = patch('openerp.addons.base_geolocalize.models.res_partner.geo_find', wraps=geo_find) + patcher.start() + self.addCleanup(patcher.stop) + + patcher = patch('openerp.addons.crm_partner_assign.crm_partner_assign.geo_find', + wraps=geo_find) + patcher.start() + self.addCleanup(patcher.stop) + + def test_00_partner_assign(self): + partner2 = self.env.ref('base.res_partner_2') + lead = self.env.ref('crm.crm_case_21') + ''' + In order to test find nearest Partner functionality and assign to opportunity, + I Set Geo Lattitude and Longitude according to partner address. + ''' + partner2.geo_localize() + + # I check Geo Latitude and Longitude of partner after set + self.assertTrue(50 < partner2.partner_latitude < 51, "Latitude is wrong: 50 < %s < 51" % partner2.partner_latitude) + self.assertTrue(3 < partner2.partner_longitude < 5, "Longitude is wrong: 3 < %s < 5" % partner2.partner_longitude) + + # I assign nearest partner to opportunity. + lead.assign_partner() + + # I check assigned partner of opportunity who is nearest Geo Latitude and Longitude of opportunity. + self.assertEqual(lead.partner_assigned_id, self.env.ref('base.res_partner_18'), "Opportuniy is not assigned nearest partner") + self.assertTrue(50 < lead.partner_latitude < 55, "Latitude is wrong: 50 < %s < 55" % lead.partner_latitude) + self.assertTrue(-4 < lead.partner_longitude < -1, "Longitude is wrong: -4 < %s < -1" % lead.partner_longitude) + + # I forward this opportunity to its nearest partner. + context = dict(self.env.context, default_model='crm.lead', default_res_id=lead.id, active_ids=lead.ids) + lead_forwarded = self.env['crm.lead.forward.to.partner'].with_context(context).create({}) + try: + lead_forwarded.action_forward() + except Exception: + pass diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 44093469135..6d311aa7711 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -1723,6 +1723,7 @@ border: 1px solid #D00 !important; } .openerp .oe_form .oe_input_icon { + position: relative; cursor: pointer; margin: 3px 0 0 -21px; vertical-align: top; diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 0073a1195c5..f9d7e5253f7 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -1519,6 +1519,7 @@ $sheet-padding: 16px background-color: #F66 !important border: 1px solid #D00 !important .oe_input_icon + position: relative cursor: pointer margin: 3px 0 0 -21px vertical-align: top