From 8c118c0e00846091c261b97dbed9a5b89ceb79bf Mon Sep 17 00:00:00 2001 From: Brock Date: Mon, 2 Dec 2024 15:51:03 +0100 Subject: Fixed #35940 -- Disabled SelectFilter add/remove buttons when appropriate. --- tests/admin_widgets/tests.py | 81 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 68 insertions(+), 13 deletions(-) (limited to 'tests/admin_widgets') diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py index 15e11a6d8f..0cf1324623 100644 --- a/tests/admin_widgets/tests.py +++ b/tests/admin_widgets/tests.py @@ -1254,21 +1254,27 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase): self.arthur = Student.objects.create(name="Arthur") self.school = School.objects.create(name="School of Awesome") - def assertActiveButtons( - self, mode, field_name, choose, remove, choose_all=None, remove_all=None + def assertButtonsDisabled( + self, + mode, + field_name, + choose_btn_disabled=False, + remove_btn_disabled=False, + choose_all_btn_disabled=False, + remove_all_btn_disabled=False, ): choose_button = "#id_%s_add" % field_name choose_all_button = "#id_%s_add_all" % field_name remove_button = "#id_%s_remove" % field_name remove_all_button = "#id_%s_remove_all" % field_name - self.assertEqual(self.has_css_class(choose_button, "active"), choose) - self.assertEqual(self.has_css_class(remove_button, "active"), remove) + self.assertEqual(self.is_disabled(choose_button), choose_btn_disabled) + self.assertEqual(self.is_disabled(remove_button), remove_btn_disabled) if mode == "horizontal": self.assertEqual( - self.has_css_class(choose_all_button, "active"), choose_all + self.is_disabled(choose_all_button), choose_all_btn_disabled ) self.assertEqual( - self.has_css_class(remove_all_button, "active"), remove_all + self.is_disabled(remove_all_button), remove_all_btn_disabled ) def execute_basic_operations(self, mode, field_name): @@ -1296,7 +1302,14 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase): ], ) self.assertSelectOptions(to_box, [str(self.lisa.id), str(self.peter.id)]) - self.assertActiveButtons(mode, field_name, False, False, True, True) + self.assertButtonsDisabled( + mode, + field_name, + choose_btn_disabled=True, + remove_btn_disabled=True, + choose_all_btn_disabled=False, + remove_all_btn_disabled=False, + ) # Click 'Choose all' -------------------------------------------------- if mode == "horizontal": @@ -1323,7 +1336,14 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase): str(self.john.id), ], ) - self.assertActiveButtons(mode, field_name, False, False, False, True) + self.assertButtonsDisabled( + mode, + field_name, + choose_btn_disabled=True, + remove_btn_disabled=True, + choose_all_btn_disabled=True, + remove_all_btn_disabled=False, + ) # Click 'Remove all' -------------------------------------------------- if mode == "horizontal": @@ -1350,7 +1370,14 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase): ], ) self.assertSelectOptions(to_box, []) - self.assertActiveButtons(mode, field_name, False, False, True, False) + self.assertButtonsDisabled( + mode, + field_name, + choose_btn_disabled=True, + remove_btn_disabled=True, + choose_all_btn_disabled=False, + remove_all_btn_disabled=True, + ) # Choose some options ------------------------------------------------ from_lisa_select_option = self.selenium.find_element( @@ -1367,9 +1394,23 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase): self.select_option(from_box, str(self.jason.id)) self.select_option(from_box, str(self.bob.id)) self.select_option(from_box, str(self.john.id)) - self.assertActiveButtons(mode, field_name, True, False, True, False) + self.assertButtonsDisabled( + mode, + field_name, + choose_btn_disabled=False, + remove_btn_disabled=True, + choose_all_btn_disabled=False, + remove_all_btn_disabled=True, + ) self.selenium.find_element(By.ID, choose_button).click() - self.assertActiveButtons(mode, field_name, False, False, True, True) + self.assertButtonsDisabled( + mode, + field_name, + choose_btn_disabled=True, + remove_btn_disabled=True, + choose_all_btn_disabled=False, + remove_all_btn_disabled=False, + ) self.assertSelectOptions( from_box, @@ -1402,9 +1443,23 @@ class HorizontalVerticalFilterSeleniumTests(AdminWidgetSeleniumTestCase): # Remove some options ------------------------------------------------- self.select_option(to_box, str(self.lisa.id)) self.select_option(to_box, str(self.bob.id)) - self.assertActiveButtons(mode, field_name, False, True, True, True) + self.assertButtonsDisabled( + mode, + field_name, + choose_btn_disabled=True, + remove_btn_disabled=False, + choose_all_btn_disabled=False, + remove_all_btn_disabled=False, + ) self.selenium.find_element(By.ID, remove_button).click() - self.assertActiveButtons(mode, field_name, False, False, True, True) + self.assertButtonsDisabled( + mode, + field_name, + choose_btn_disabled=True, + remove_btn_disabled=True, + choose_all_btn_disabled=False, + remove_all_btn_disabled=False, + ) self.assertSelectOptions( from_box, -- cgit v1.3