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_by_email_nosignup(self): """ Case: have multiples partners with the same email address If I set one email address, I expect one email to be sent """ first_partner = self.env['res.partner'].create({ 'name': 'Test 1', 'email': '*****@*****.**', }) self.env['res.partner'].create({ 'name': 'Test 2', 'email': '"Raoul Poilvache" <*****@*****.**>', }) 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.emails = '*****@*****.**' invite = invite_form.save() invite.action_invite() answers = self.env['survey.user_input'].search([('survey_id', '=', self.survey.id)]) self.assertEqual(len(answers), 1) self.assertEqual(answers.partner_id.display_name, first_partner.display_name)
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)