@@ -479,7 +479,7 @@ def test_widgets_selected_after_validation_error(self, db, live_server, driver,
479479 WebDriverWait (driver , 60 ).until (
480480 expected_conditions .presence_of_element_located ((By .CSS_SELECTOR , '.select2-selection--single' ))
481481 )
482- country_container , city_container = driver .find_elements_by_css_selector ('.select2-selection--single' )
482+ country_container , city_container , city2_container = driver .find_elements_by_css_selector ('.select2-selection--single' )
483483
484484 # clicking city select2 lists all available cities
485485 city_container .click ()
@@ -529,3 +529,44 @@ def test_widgets_selected_after_validation_error(self, db, live_server, driver,
529529 country_names_from_db = {City .objects .get (name = city_name ).country .name }
530530 assert len (country_names_from_browser ) != Country .objects .count ()
531531 assert country_names_from_browser == country_names_from_db
532+
533+ def test_dependent_fields_clear_after_change_parent (self , db , live_server , driver , countries , cities ):
534+ driver .get (live_server + self .url )
535+ country_container , city_container , city2_container = driver .find_elements_by_css_selector ('.select2-selection--single' )
536+
537+ # selecting a country really does it
538+ country_container .click ()
539+ WebDriverWait (driver , 60 ).until (
540+ expected_conditions .presence_of_element_located ((By .CSS_SELECTOR , '.select2-results li:nth-child(2)' ))
541+ )
542+ country_option = driver .find_element_by_css_selector ('.select2-results li:nth-child(2)' )
543+ country_name = country_option .text
544+ country_option .click ()
545+ assert country_name == country_container .text
546+
547+ # selecting a city2
548+ city2_container .click ()
549+ WebDriverWait (driver , 60 ).until (
550+ expected_conditions .presence_of_element_located ((By .CSS_SELECTOR , '.select2-results li' ))
551+ )
552+ city2_option = driver .find_element_by_css_selector ('.select2-results li:nth-child(2)' )
553+ city2_name = city2_option .text
554+ city2_option .click ()
555+ assert city2_name == city2_container .text
556+
557+ # change a country
558+ country_container .click ()
559+ WebDriverWait (driver , 60 ).until (
560+ expected_conditions .presence_of_element_located ((By .CSS_SELECTOR , '.select2-results li:nth-child(3)' ))
561+ )
562+ country_option = driver .find_element_by_css_selector ('.select2-results li:nth-child(3)' )
563+ country_name = country_option .text
564+ country_option .click ()
565+ assert country_name == country_container .text
566+
567+ # check the value in city2
568+ city2_container .click ()
569+ WebDriverWait (driver , 60 ).until (
570+ expected_conditions .presence_of_element_located ((By .CSS_SELECTOR , '.select2-results li' ))
571+ )
572+ assert city2_container .text == ""
0 commit comments