init 18.0

This commit is contained in:
2026-03-24 14:42:53 +01:00
parent 10e9cb6c15
commit eced098fbb
146 changed files with 3 additions and 7612 deletions

View File

@@ -1 +0,0 @@
from . import test_survey_record_creation

View File

@@ -1,893 +0,0 @@
from datetime import date
from psycopg2 import IntegrityError
from odoo.addons.survey.tests.common import SurveyCase
class TestSurveyRecordCreation(SurveyCase):
def setUp(self):
super().setUp()
# We create a survey
self.survey = self.env["survey.survey"].create(
{
"title": "Test Survey",
}
)
# With a single question "name"
self.question_name = self._add_question(
page=None,
name="Name",
qtype="char_box",
survey_id=self.survey.id,
sequence=1,
)
self.res_partner_model = self.env["ir.model"]._get("res.partner")
# The administrator has set up a record creation on res.partner model
self.survey_record_creation = self.env["survey.record.creation"].create(
{
"name": "Contact",
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
}
)
self.name_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "name")]
)
# And linked the res_partner field "name" to the answer of question_name
self.name_survey_record_creation_field_values = self.env[
"survey.record.creation.field.values"
].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": self.name_field.id,
"value_origin": "question",
"question_id": self.question_name.id,
}
)
def test_record_is_created(self):
# Easy test to become familiar with the subject (check comments of setUp)
# We simulate that jean@test.fr has answered the survey
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
# He answered "Jean" to the question_name
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
# And validate the survey
self.answer._mark_done()
# Thus, the res.partner with the name "Jean" has been created
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(partner.name == "Jean")
def test_all_types_of_question(self):
# Still todo : "datetime" and "text_box"
# Also todo : "simple_choice" with answer_values_type "no"
# Also todo : "multiple_choice" with answer_values_type "no" and "value"
# Note : matrix question type is never proposed in the allowed_question_ids
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
### "char_box" type of question, tested with field CHAR "name" ###
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
### "numerical_box" type of question,
# tested with FLOAT field "partner_latitude" ###
self.question_partner_latitude = self._add_question(
page=None,
name="Partner latitude",
qtype="numerical_box",
survey_id=self.survey.id,
sequence=1,
)
partner_latitude_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "partner_latitude")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": partner_latitude_field.id,
"value_origin": "question",
"question_id": self.question_partner_latitude.id,
}
)
self._add_answer_line(
question=self.question_partner_latitude,
answer=self.answer,
answer_value=44.73333,
)
### "date" type of question, tested with DATE field "date" ###
self.question_date = self._add_question(
page=None, name="Date", qtype="date", survey_id=self.survey.id, sequence=1
)
date_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "date")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": date_field.id,
"value_origin": "question",
"question_id": self.question_date.id,
}
)
self._add_answer_line(
question=self.question_date, answer=self.answer, answer_value=date.today()
)
### "simple_choice" type of question, tested with SELECTION field "type" ###
### Here we also test answer_values_type "value"
self.question_type = self._add_question(
page=None,
name="Type",
qtype="simple_choice",
labels=[
{"value": "contact"},
{"value": "other"},
],
survey_id=self.survey.id,
sequence=1,
answer_values_type="value",
)
self.question_type.suggested_answer_ids[0].value_char = (
self.question_type.suggested_answer_ids[0].value
)
self.question_type.suggested_answer_ids[1].value_char = (
self.question_type.suggested_answer_ids[1].value
)
type_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "type")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": type_field.id,
"value_origin": "question",
"question_id": self.question_type.id,
}
)
self._add_answer_line(
question=self.question_type,
answer=self.answer,
answer_value=self.question_type.suggested_answer_ids[0].id,
)
### "simple_choice" type of question, tested with MANY2ONE field "title" ###
### Here we also test answer_values_type "record"
mister_title = self.env["res.partner.title"].create({"name": "Mister"})
madam_title = self.env["res.partner.title"].create({"name": "Madam"})
self.question_title = self._add_question(
page=None,
name="Title",
qtype="simple_choice",
labels=[
{"value": mister_title.display_name},
{"value": madam_title.display_name},
],
survey_id=self.survey.id,
sequence=1,
answer_values_type="record",
)
self.question_title.suggested_answer_ids[0].record_id = (
f"res.partner.title,{mister_title.id}"
)
self.question_title.suggested_answer_ids[1].record_id = (
f"res.partner.title,{madam_title.id}"
)
title_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "title")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": title_field.id,
"value_origin": "question",
"question_id": self.question_title.id,
}
)
self._add_answer_line(
question=self.question_title,
answer=self.answer,
answer_value=self.question_title.suggested_answer_ids[0].id,
)
### "multiple_choice" type of question,
# tested with MANY2MANY field "category" ###
adult_category = self.env["res.partner.category"].create({"name": "Adult"})
teenager_category = self.env["res.partner.category"].create(
{"name": "Teenager"}
)
child_category = self.env["res.partner.category"].create({"name": "Child"})
self.question_category = self._add_question(
page=None,
name="Category",
qtype="multiple_choice",
labels=[
{"value": adult_category.display_name},
{"value": teenager_category.display_name},
{"value": child_category.display_name},
],
survey_id=self.survey.id,
sequence=1,
answer_values_type="record",
)
self.question_category.suggested_answer_ids[0].record_id = (
f"res.partner.category,{adult_category.id}"
)
self.question_category.suggested_answer_ids[1].record_id = (
f"res.partner.category,{teenager_category.id}"
)
self.question_category.suggested_answer_ids[2].record_id = (
f"res.partner.category,{child_category.id}"
)
category_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "category_id")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": category_field.id,
"value_origin": "question",
"question_id": self.question_category.id,
}
)
self._add_answer_line(
question=self.question_category,
answer=self.answer,
answer_value=self.question_category.suggested_answer_ids[0].id,
)
self._add_answer_line(
question=self.question_category,
answer=self.answer,
answer_value=self.question_category.suggested_answer_ids[1].id,
)
self.answer._mark_done()
partner = self.env["res.partner"].search(
[
("name", "=", "Jean"),
("partner_latitude", "=", 44.73333),
("date", "=", date.today()),
("type", "=", "contact"),
("title", "=", mister_title.id),
("category_id", "=", adult_category.id),
("category_id", "=", teenager_category.id),
("category_id", "!=", child_category.id),
]
)
self.assertTrue(partner.name == "Jean")
def test_records_are_created(self):
# we test that several records can be created at the end of the same survey
# concurrently, we test the value_origin "other_record" and "fixed"
res_partner_bank_model = self.env["ir.model"]._get("res.partner.bank")
self.bank_survey_record_creation = self.env["survey.record.creation"].create(
{
"name": "Bank",
"survey_id": self.survey.id,
"model_id": res_partner_bank_model.id,
}
)
# Below we test "value_origin": "other_record" with a required field
partner_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner.bank"), ("name", "=", "partner_id")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.bank_survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": res_partner_bank_model.id,
"field_id": partner_field.id,
"value_origin": "other_record",
"other_created_record_id": self.survey_record_creation.id,
}
)
# Below we test "value_origin": "fixed"
acc_number_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner.bank"), ("name", "=", "acc_number")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.bank_survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": res_partner_bank_model.id,
"field_id": acc_number_field.id,
"value_origin": "fixed",
"fixed_value_char": "FR76 1444 5004 0004 0000 0000 000",
}
)
# Below we test "value_origin": "other_record" with a NOT required field
bank_ids_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "bank_ids")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": bank_ids_field.id,
"value_origin": "other_record",
"other_created_record_id": self.bank_survey_record_creation.id,
}
)
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(partner.name == "Jean")
bank_account = self.env["res.partner.bank"].search(
[("partner_id", "=", partner.id)]
)
self.assertTrue(bank_account.acc_number == "FR76 1444 5004 0004 0000 0000 000")
def test_records_of_same_model_are_created(self):
# When we have 2 survey.record.creation on res.partner,
# we check that 2 contacts are created
self.second_question_name = self._add_question(
page=None,
name="Name of second person",
qtype="char_box",
survey_id=self.survey.id,
sequence=1,
)
self.second_contact_creation = self.env["survey.record.creation"].create(
{
"name": "Contact 2",
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
}
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.second_contact_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": self.name_field.id,
"value_origin": "question",
"question_id": self.second_question_name.id,
}
)
self.first_answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name,
answer=self.first_answer,
answer_value="Jean",
)
self._add_answer_line(
question=self.second_question_name,
answer=self.first_answer,
answer_value="Jeanne",
)
self.first_answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(partner.name == "Jean")
partner = self.env["res.partner"].search([("name", "=", "Jeanne")])
self.assertTrue(partner.name == "Jeanne")
def test_survey_submitted_twice_by_same_user(self):
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(partner.name == "Jean")
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self.answer._mark_done()
partners = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(len(partners) == 2)
def test_unicity_check(self):
# In this test, we check the behavior of unicity_check
self.name_survey_record_creation_field_values.unicity_check = True
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(partner.name == "Jean")
self.second_answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.second_answer, answer_value="Jean"
)
self.second_answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(partner.name == "Jean")
self.assertTrue(len(partner) == 1)
def test_some_questions_are_not_answered(self):
self.question_email = self._add_question(
page=None,
name="Email",
qtype="char_box",
survey_id=self.survey.id,
sequence=1,
)
mister_title = self.env["res.partner.title"].create({"name": "Mister"})
madam_title = self.env["res.partner.title"].create({"name": "Madam"})
self.question_title = self._add_question(
page=None,
name="Title",
qtype="simple_choice",
labels=[
{"value": mister_title.display_name},
{"value": madam_title.display_name},
],
survey_id=self.survey.id,
sequence=1,
answer_values_type="record",
)
self.question_title.suggested_answer_ids[0].record_id = (
f"res.partner.title,{mister_title.id}"
)
self.question_title.suggested_answer_ids[1].record_id = (
f"res.partner.title,{madam_title.id}"
)
self.question_street = self._add_question(
page=None,
name="Street",
qtype="char_box",
survey_id=self.survey.id,
sequence=1,
)
email_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "email")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": email_field.id,
"value_origin": "question",
"question_id": self.question_email.id,
}
)
title_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "title")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": title_field.id,
"value_origin": "question",
"question_id": self.question_title.id,
}
)
street_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "street")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": street_field.id,
"value_origin": "question",
"question_id": self.question_street.id,
}
)
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self._add_answer_line(
question=self.question_email,
answer=self.answer,
answer_value=False,
skipped=True,
answer_type=False,
)
self._add_answer_line(
question=self.question_title,
answer=self.answer,
answer_value=False,
skipped=True,
answer_type=False,
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(partner.name == "Jean")
self.assertFalse(partner.email)
self.assertFalse(partner.title)
self.assertFalse(partner.street)
def test_boolean_field(self):
self.question_employee = self._add_question(
page=None,
name="Employee",
qtype="simple_choice",
labels=[
{"value": "yes"},
{"value": "no"},
],
survey_id=self.survey.id,
sequence=1,
answer_values_type="value",
)
self.question_employee.suggested_answer_ids[0].value_char = (
self.question_employee.suggested_answer_ids[0].value
)
self.question_employee.suggested_answer_ids[1].value_char = (
self.question_employee.suggested_answer_ids[1].value
)
employee_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "employee")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": employee_field.id,
"value_origin": "question",
"question_id": self.question_employee.id,
}
)
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self._add_answer_line(
question=self.question_employee,
answer=self.answer,
answer_value=self.question_employee.suggested_answer_ids[0].id,
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(partner.employee)
def test_update_existing_record(self):
# A contact with name 'Jean' already exists.
# We'll update the email of this partner (and not create a new one)
self.env["res.partner"].create({"name": "Jean"})
self.question_email = self._add_question(
page=None,
name="Email",
qtype="char_box",
survey_id=self.survey.id,
sequence=1,
)
self.survey_record_creation.write(
{
"update_existing_records": True,
"field_to_retrieve_existing_records": self.name_field.id,
}
)
email_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "email")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": email_field.id,
"value_origin": "question",
"question_id": self.question_email.id,
}
)
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self._add_answer_line(
question=self.question_email,
answer=self.answer,
answer_value="jean@test.fr",
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(len(partner) == 1)
self.assertTrue(partner.email == "jean@test.fr")
def test_update_only_empty_fields_when_updating_records(self):
# A contact with name 'Jean' and email 'jean@test.fr' already exists.
# We'll update the field 'function' of this partner and won't update the email
# because it's already filled up
self.env["res.partner"].create(
{
"name": "Jean",
"email": "jean@test.fr",
# when the survey is submitted, email should not be updated
}
)
self.question_email = self._add_question(
page=None,
name="Email",
qtype="char_box",
survey_id=self.survey.id,
sequence=1,
)
self.question_function = self._add_question(
page=None,
name="Function",
qtype="char_box",
survey_id=self.survey.id,
sequence=1,
)
self.survey_record_creation.write(
{
"update_existing_records": True,
"field_to_retrieve_existing_records": self.name_field.id,
}
)
email_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "email")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": email_field.id,
"value_origin": "question",
"question_id": self.question_email.id,
}
)
function_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "function")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": function_field.id,
"value_origin": "question",
"question_id": self.question_function.id,
}
)
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self._add_answer_line(
question=self.question_email,
answer=self.answer,
answer_value="ThisEmailShouldNotBeUpdated@test.fr",
)
self._add_answer_line(
question=self.question_function,
answer=self.answer,
answer_value="happiness office manager",
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(len(partner) == 1)
self.assertTrue(partner.email == "jean@test.fr")
self.assertTrue(partner.function == "happiness office manager")
def test_unicity_check_has_priority_over_update(self):
# In this test, we verify that if a field is set up with unicity_check
# it has priority over updating the existing record
self.name_survey_record_creation_field_values.unicity_check = True
self.env["res.partner"].create({"name": "Jean"})
self.question_email = self._add_question(
page=None,
name="Email",
qtype="char_box",
survey_id=self.survey.id,
sequence=1,
)
self.survey_record_creation.write(
{
"update_existing_records": True,
"field_to_retrieve_existing_records": self.name_field.id,
}
)
email_field = self.env["ir.model.fields"].search(
[("model", "=", "res.partner"), ("name", "=", "email")]
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.survey_record_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": email_field.id,
"value_origin": "question",
"question_id": self.question_email.id,
}
)
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self._add_answer_line(
question=self.question_email,
answer=self.answer,
answer_value="jean@test.fr",
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertTrue(len(partner) == 1)
self.assertTrue(getattr(partner, "Email", None) is None)
def test_required_fields_are_not_filled_up(self):
# In this test, we check the behavior when a required field (name) is missing
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
with self.assertRaises(IntegrityError):
# TODO : propose a better user experience than IntegrityError when
# a mandatory field is missing
self.answer._mark_done()
def test_ignore_if_mandatory_field_is_missing(self):
# In this test, we check the behavior of ignore_if_mandatory_field_is_missing
self.survey_record_creation.write(
{"ignore_if_mandatory_field_is_missing": True}
)
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self.answer._mark_done()
# No partner has been created, and no IntegrityError has been raised
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertEqual(len(partner), 0)
def test_fill_up_partner_id_in_survey_input(self):
# In this test, we check that the field partner_id is filled up
# when we create a res.partner
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name, answer=self.answer, answer_value="Jean"
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertEqual(self.answer.partner_id, partner)
def test_partner_id_in_survey_input_is_filled_up_by_first_contact_record_creation(self):
# In this test, we verify that when creating several contacts with the same survey,
# the 1st created contact is used to fill up survey_input.partner_id
self.second_question_name = self._add_question(
page=None,
name="Name of second person",
qtype="char_box",
survey_id=self.survey.id,
sequence=1,
)
self.second_contact_creation = self.env["survey.record.creation"].create(
{
"name": "Contact 2",
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
}
)
self.env["survey.record.creation.field.values"].create(
{
"survey_record_creation_id": self.second_contact_creation.id,
"survey_id": self.survey.id,
"model_id": self.res_partner_model.id,
"field_id": self.name_field.id,
"value_origin": "question",
"question_id": self.second_question_name.id,
}
)
self.answer = self._add_answer(
survey=self.survey, partner=False, email="jean@test.fr"
)
self._add_answer_line(
question=self.question_name,
answer=self.answer,
answer_value="Jean",
)
self._add_answer_line(
question=self.second_question_name,
answer=self.answer,
answer_value="Jeanne",
)
self.answer._mark_done()
partner = self.env["res.partner"].search([("name", "=", "Jean")])
self.assertEqual(self.answer.partner_id, partner)