summaryrefslogtreecommitdiff
path: root/tests/admin_inlines
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2020-04-10 17:00:22 +0200
committerCarlton Gibson <carlton@noumenal.es>2020-04-16 12:17:49 +0200
commit96c6f9c61c62af8e2e258642b21351484e61b644 (patch)
tree67033d62d4df6445aef447194975d92f3010ceef /tests/admin_inlines
parentb4e7bf5284f8869bee38c48c15f77c1808774525 (diff)
downloaddjango-96c6f9c61c62af8e2e258642b21351484e61b644.tar.gz
Fixed #31441 -- Ensured TabluarInline expands when child inputs have errors.
Diffstat (limited to 'tests/admin_inlines')
-rw-r--r--tests/admin_inlines/tests.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/admin_inlines/tests.py b/tests/admin_inlines/tests.py
index 9e280fb660..fe83d664c8 100644
--- a/tests/admin_inlines/tests.py
+++ b/tests/admin_inlines/tests.py
@@ -1278,3 +1278,44 @@ class SeleniumTests(AdminSeleniumTestCase):
self.selenium.find_element_by_css_selector(selector).value_of_css_property('border'),
'1px solid rgb(186, 33, 33)', # 1px solid #ba2121
)
+
+ def test_inline_formset_error(self):
+ self.admin_login(username='super', password='secret')
+ self.selenium.get(self.live_server_url + reverse('admin:admin_inlines_holder5_add'))
+ stacked_inline_formset_selector = 'div#inner5stacked_set-group fieldset.module.collapse'
+ tabular_inline_formset_selector = 'div#inner5tabular_set-group fieldset.module.collapse'
+ # Inlines without errors, both inlines collapsed
+ self.selenium.find_element_by_xpath('//input[@value="Save"]').click()
+ self.assertEqual(
+ len(self.selenium.find_elements_by_css_selector(stacked_inline_formset_selector + '.collapsed')), 1
+ )
+ self.assertEqual(
+ len(self.selenium.find_elements_by_css_selector(tabular_inline_formset_selector + '.collapsed')), 1
+ )
+ show_links = self.selenium.find_elements_by_link_text('SHOW')
+ self.assertEqual(len(show_links), 2)
+
+ # Inlines with errors, both inlines expanded
+ test_fields = ['#id_inner5stacked_set-0-dummy', '#id_inner5tabular_set-0-dummy']
+ for show_index, field_name in enumerate(test_fields):
+ show_links[show_index].click()
+ self.wait_until_visible(field_name)
+ self.selenium.find_element_by_id(field_name[1:]).send_keys(1)
+ hide_links = self.selenium.find_elements_by_link_text('HIDE')
+ self.assertEqual(len(hide_links), 2)
+ for hide_index, field_name in enumerate(test_fields):
+ hide_links[hide_index].click()
+ self.wait_until_invisible(field_name)
+ self.selenium.find_element_by_xpath('//input[@value="Save"]').click()
+ self.assertEqual(
+ len(self.selenium.find_elements_by_css_selector(stacked_inline_formset_selector + '.collapsed')), 0
+ )
+ self.assertEqual(
+ len(self.selenium.find_elements_by_css_selector(tabular_inline_formset_selector + '.collapsed')), 0
+ )
+ self.assertEqual(
+ len(self.selenium.find_elements_by_css_selector(stacked_inline_formset_selector)), 1
+ )
+ self.assertEqual(
+ len(self.selenium.find_elements_by_css_selector(tabular_inline_formset_selector)), 1
+ )