@@ -479,7 +479,7 @@ def test_widgets_selected_after_validation_error(self, db, live_server, driver,
479
479
WebDriverWait (driver , 60 ).until (
480
480
expected_conditions .presence_of_element_located ((By .CSS_SELECTOR , '.select2-selection--single' ))
481
481
)
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' )
483
483
484
484
# clicking city select2 lists all available cities
485
485
city_container .click ()
@@ -529,3 +529,44 @@ def test_widgets_selected_after_validation_error(self, db, live_server, driver,
529
529
country_names_from_db = {City .objects .get (name = city_name ).country .name }
530
530
assert len (country_names_from_browser ) != Country .objects .count ()
531
531
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