@@ -704,7 +704,7 @@ def test_value_validation_with_offset_and_scale() -> None:
704704 delegate_param .set (1 )
705705
706706
707- def test_delegate_of_delegate_updates_settable_gettable ():
707+ def test_delegate_of_delegate_updates_settable_gettable () -> None :
708708 gettable_settable_source_param = Parameter (
709709 "source" , set_cmd = None , get_cmd = None , vals = vals .Numbers (- 5 , 5 )
710710 )
@@ -737,6 +737,28 @@ def test_delegate_of_delegate_updates_settable_gettable():
737737 assert not delegate_param_outer .settable
738738
739739
740+ def test_delegate_of_delegate_root_source () -> None :
741+ gettable_settable_source_param = Parameter (
742+ "source" , set_cmd = None , get_cmd = None , vals = vals .Numbers (- 5 , 5 )
743+ )
744+
745+ delegate_param_inner = DelegateParameter (
746+ "delegate_inner" , source = None , vals = vals .Numbers (- 10 , 10 )
747+ )
748+ delegate_param_outer = DelegateParameter (
749+ "delegate_outer" , source = None , vals = vals .Numbers (- 10 , 10 )
750+ )
751+ delegate_param_outer .source = delegate_param_inner
752+ delegate_param_inner .source = gettable_settable_source_param
753+
754+ assert delegate_param_outer .root_source == gettable_settable_source_param
755+ assert delegate_param_outer .source is not None
756+ assert delegate_param_outer .source .source == gettable_settable_source_param
757+
758+ assert delegate_param_inner .root_source == gettable_settable_source_param
759+ assert delegate_param_inner .source == gettable_settable_source_param
760+
761+
740762def test_delegate_parameter_context () -> None :
741763 gettable_settable_source_param = Parameter (
742764 "source" , set_cmd = None , get_cmd = None , vals = vals .Numbers (- 5 , 5 )
0 commit comments