@@ -873,15 +873,35 @@ def test_load_image_auto_parent_existing_in_dc(self, rename):
873873 assert dcf_helper ._app ._get_assoc_data_parent ('Image[ERR,2]' ) == primary_label
874874 assert dcf_helper ._app ._get_assoc_data_children (primary_label ) == ['Image[ERR,2]' ]
875875
876- # This should raise 'Data labels {unavailable} not able to be loaded...'
877- # if parent child association doesn't work correctly (i.e. the previous behavior)
878- # TODO: Remove this if we decide to prevent users from removing child data from viewers
879- dcf_helper .viewers ['Image' ].data_menu .add_data ('Image[ERR,2]' )
876+ def test_multi_viewer_parent_data (self ):
877+ dcf_helper = self .dcf_helper
878+ ldr = self .ldr
879+
880+ # Default parent selection is 'auto'
881+ ldr .importer .extension = 'SCI,1'
882+ ldr .load ()
883+
884+ # Load a second viewer with the same data - Image (1)
885+ vc = dcf_helper .new_viewers ['Image' ]
886+ vc .dataset = 'Image[SCI,1]'
887+ vc ()
888+
889+ assert len (dcf_helper .viewers ['Image' ].data_menu .data_labels_loaded ) == 1
890+ assert len (dcf_helper .viewers ['Image (1)' ].data_menu .data_labels_loaded ) == 1
891+
892+ # Parent should be 'Auto'
893+ ldr .importer .extension = 'ERR,1'
894+ ldr .load ()
880895
881- # TODO: Remove skip once this behavior is fixed
896+ assert dcf_helper ._app ._get_assoc_data_parent ('Image[ERR,1]' ) == 'Image[SCI,1]'
897+ assert dcf_helper ._app ._get_assoc_data_children ('Image[SCI,1]' ) == ['Image[ERR,1]' ]
898+
899+ assert len (dcf_helper .viewers ['Image' ].data_menu .data_labels_loaded ) == 2
900+ assert len (dcf_helper .viewers ['Image (1)' ].data_menu .data_labels_loaded ) == 2
901+
902+ # TODO: Remove skip once this behavior is fixed
882903 @pytest .mark .skip
883- @pytest .mark .parametrize ('remove_from' , ('viewer' , 'app' ))
884- def test_load_unload_parenting_behavior (self , remove_from ):
904+ def test_load_unload_parenting_behavior (self ):
885905 ldr = self .ldr
886906 dcf_helper = self .dcf_helper
887907
@@ -895,17 +915,9 @@ def test_load_unload_parenting_behavior(self, remove_from):
895915
896916 dm = dcf_helper .viewers ['Image' ].data_menu
897917 dm .layer = ['Image[ERR,1]' ]
898-
899- if remove_from == 'viewer' :
900- # Remove from viewer and use data_menu.add_data
901- # TODO: remove this and the parametrization if we decide to
902- # prevent users from removing child data from viewers (keep remove_from_app though)
903- dm .remove_from_viewer ()
904- dm .add_data ('Image[ERR,1]' )
905- else :
906- # Remove from app and load again
907- dm .remove_from_app ()
908- ldr .load ()
918+ # Remove from app and load again
919+ dm .remove_from_app ()
920+ ldr .load ()
909921
910922 assert dcf_helper ._app ._get_assoc_data_parent ('Image[ERR,1]' ) is None
911923 assert dcf_helper ._app ._get_assoc_data_children ('Image[SCI,1]' ) == []
0 commit comments