def test_survey_invite_authentication_nosignup(self): Answer = self.env['survey.user_input'] self.survey.write({ 'access_mode': 'public', 'users_login_required': True }) action = self.survey.action_send_survey() invite_form = Form(self.env[action['res_model']].with_context( action['context'])) with self.assertRaises( UserError ): # do not allow to add customer (partner without user) invite_form.partner_ids.add(self.customer) invite_form.partner_ids.clear() invite_form.partner_ids.add(self.user_portal.partner_id) invite_form.partner_ids.add(self.user_emp.partner_id) with self.assertRaises(UserError): invite_form.emails = '[email protected], Raoulette Vignolette <*****@*****.**>' invite_form.emails = False invite = invite_form.save() invite.action_invite() answers = Answer.search([('survey_id', '=', self.survey.id)]) self.assertEqual(len(answers), 2) self.assertEqual(set(answers.mapped('email')), set([self.user_emp.email, self.user_portal.email])) self.assertEqual( answers.mapped('partner_id'), self.user_emp.partner_id | self.user_portal.partner_id)
def test_survey_invite_token(self): Answer = self.env['survey.user_input'] self.survey.write({ 'access_mode': 'token', 'users_login_required': False }) action = self.survey.action_send_survey() invite_form = Form(self.env[action['res_model']].with_context( action['context'])) invite_form.partner_ids.add(self.customer) invite_form.emails = '[email protected], Raoulette Vignolette <*****@*****.**>' invite = invite_form.save() invite.action_invite() answers = Answer.search([('survey_id', '=', self.survey.id)]) self.assertEqual(len(answers), 3) self.assertEqual( set(answers.mapped('email')), set([ '*****@*****.**', '"Raoulette Vignolette" <*****@*****.**>', self.customer.email ])) self.assertEqual(answers.mapped('partner_id'), self.customer)