- 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_19')], 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_19')) assert lead.partner_assigned_id.id == ref('base.res_partner_15') , "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_19'), 'active_ids': [ref('crm.crm_case_19')]}) forward_id = self.create(cr, uid, {}, context=context) try: self.action_forward(cr, uid, [forward_id], context=context) except: pass