From 9e7c0f1dbcb0176a57775866fb829b13791c300a Mon Sep 17 00:00:00 2001 From: Jonas Dittrich <58814480+Kakadus@users.noreply.github.com> Date: Mon, 20 Jan 2025 19:59:20 +0100 Subject: [PATCH] fixup! submit evaluation edit form --- evap/staff/tests/test_live.py | 41 ++++++++++++----------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/evap/staff/tests/test_live.py b/evap/staff/tests/test_live.py index 657627698f..1bb56c30a5 100644 --- a/evap/staff/tests/test_live.py +++ b/evap/staff/tests/test_live.py @@ -11,6 +11,7 @@ class StaffLiveTests(LiveServerTest): def test_changes_form_data(self): + """Regression test for #1769""" manager = make_manager() responsible = baker.make(UserProfile) editor = baker.make(UserProfile) @@ -36,8 +37,8 @@ def test_changes_form_data(self): evaluation=evaluation, contributor=responsible, order=0, - role=Contribution.Role.EDITOR, - textanswer_visibility=Contribution.TextAnswerVisibility.GENERAL_TEXTANSWERS, + role=Contribution.Role.CONTRIBUTOR, + textanswer_visibility=Contribution.TextAnswerVisibility.OWN_TEXTANSWERS, ) contribution2 = baker.make( Contribution, @@ -45,7 +46,7 @@ def test_changes_form_data(self): contributor=editor, order=1, role=Contribution.Role.EDITOR, - ) + ) # contribution without interaction contribution1.questionnaires.set([contributor_questionnaire]) contribution2.questionnaires.set([contributor_questionnaire]) @@ -55,34 +56,20 @@ def test_changes_form_data(self): self.selenium.get(self.live_server_url + reverse("staff:evaluation_edit", args=[evaluation.pk])) - self.wait.until( - expected_conditions.visibility_of_element_located((By.XPATH, "//label[contains(text(), 'Editor')]")) - ) - - manager_id = self.selenium.execute_script( - """ - const tomselect = document.getElementById("id_contributions-0-contributor").tomselect; - const options = tomselect.options; - const managerOption = Object.keys(options).find( - key => options[key].text == "manager (manager@institution.example.com)", - ); - tomselect.setValue(managerOption); - return managerOption; - """ + submit_btn = self.wait.until( + expected_conditions.element_to_be_clickable((By.XPATH, "//button[@name='operation' and @value='save']")) ) editor_labels = self.selenium.find_elements(By.XPATH, "//label[contains(text(), 'Editor')]") own_and_general_labels = self.selenium.find_elements(By.XPATH, "//label[contains(text(), 'Own and general')]") - editor_labels[0].click() own_and_general_labels[0].click() - form_data = self.selenium.execute_script( - """ - return Object.fromEntries(new FormData(document.getElementById("evaluation-form"))); - """ - ) - self.assertEqual(form_data["contributions-0-contributor"], manager_id) - self.assertEqual(form_data["contributions-0-order"], "0") - self.assertEqual(form_data["contributions-0-role"], "1") - self.assertEqual(form_data["contributions-0-textanswer_visibility"], "GENERAL") + submit_btn.click() + + contribution1.refresh_from_db() + + self.assertEqual(contribution1.contributor_id, responsible.id) + self.assertEqual(contribution1.order, 0) + self.assertEqual(contribution1.role, Contribution.Role.EDITOR) + self.assertEqual(contribution1.textanswer_visibility, Contribution.TextAnswerVisibility.GENERAL_TEXTANSWERS)