[IMP] survey_record_generation : add param ignore_if_mandatory_field_is_missing
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m38s
Some checks failed
pre-commit / pre-commit (pull_request) Failing after 1m38s
This commit is contained in:
@@ -150,12 +150,12 @@ class TestSurveyRecordCreation(SurveyCase):
|
||||
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
|
||||
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")]
|
||||
@@ -195,12 +195,12 @@ class TestSurveyRecordCreation(SurveyCase):
|
||||
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_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")]
|
||||
@@ -243,15 +243,15 @@ class TestSurveyRecordCreation(SurveyCase):
|
||||
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}"
|
||||
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")]
|
||||
@@ -411,44 +411,6 @@ class TestSurveyRecordCreation(SurveyCase):
|
||||
partner = self.env["res.partner"].search([("name", "=", "Jeanne")])
|
||||
self.assertTrue(partner.name == "Jeanne")
|
||||
|
||||
def test_required_fields_are_not_filled_up(self):
|
||||
# In this test, we check the behavior when a required field is missing
|
||||
self.question_email = self._add_question(
|
||||
page=None,
|
||||
name="Email",
|
||||
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,
|
||||
}
|
||||
)
|
||||
|
||||
self.answer = self._add_answer(
|
||||
survey=self.survey, partner=False, email="jean@test.fr"
|
||||
)
|
||||
self._add_answer_line(
|
||||
question=self.question_email,
|
||||
answer=self.answer,
|
||||
answer_value="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_survey_submitted_twice_by_same_user(self):
|
||||
self.answer = self._add_answer(
|
||||
survey=self.survey, partner=False, email="jean@test.fr"
|
||||
@@ -521,12 +483,12 @@ class TestSurveyRecordCreation(SurveyCase):
|
||||
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_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,
|
||||
@@ -618,12 +580,12 @@ class TestSurveyRecordCreation(SurveyCase):
|
||||
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
|
||||
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")]
|
||||
@@ -838,3 +800,31 @@ class TestSurveyRecordCreation(SurveyCase):
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user