@@ -574,18 +574,23 @@ def test_value_validation() -> None:
574
574
source_param = Parameter ("source" , set_cmd = None , get_cmd = None )
575
575
delegate_param = DelegateParameter ("delegate" , source = source_param )
576
576
577
+ # Test case where source parameter validator is None and delegate parameter validator is
578
+ # specified.
577
579
delegate_param .vals = vals .Numbers (- 10 , 10 )
578
580
source_param .vals = None
579
581
delegate_param .validate (1 )
580
582
with pytest .raises (ValueError ):
581
583
delegate_param .validate (11 )
582
584
585
+ # Test where delegate parameter validator is None and source parameter validator is
586
+ # specified.
583
587
delegate_param .vals = None
584
588
source_param .vals = vals .Numbers (- 5 , 5 )
585
589
delegate_param .validate (1 )
586
590
with pytest .raises (ValueError ):
587
591
delegate_param .validate (6 )
588
592
593
+ # Test case where source parameter validator is more restricted than delegate parameter.
589
594
delegate_param .vals = vals .Numbers (- 10 , 10 )
590
595
source_param .vals = vals .Numbers (- 5 , 5 )
591
596
delegate_param .validate (1 )
@@ -594,6 +599,33 @@ def test_value_validation() -> None:
594
599
with pytest .raises (ValueError ):
595
600
delegate_param .validate (11 )
596
601
602
+ # Test case that the order of setting validator on source and delegate parameters does not matter.
603
+ source_param .vals = vals .Numbers (- 5 , 5 )
604
+ delegate_param .vals = vals .Numbers (- 10 , 10 )
605
+ delegate_param .validate (1 )
606
+ with pytest .raises (ValueError ):
607
+ delegate_param .validate (6 )
608
+ with pytest .raises (ValueError ):
609
+ delegate_param .validate (11 )
610
+
611
+ # Test case where delegate parameter validator is more restricted than source parameter.
612
+ delegate_param .vals = vals .Numbers (- 5 , 5 )
613
+ source_param .vals = vals .Numbers (- 10 , 10 )
614
+ delegate_param .validate (1 )
615
+ with pytest .raises (ValueError ):
616
+ delegate_param .validate (6 )
617
+ with pytest .raises (ValueError ):
618
+ delegate_param .validate (11 )
619
+
620
+ # Test case that the order of setting validator on source and delegate parameters does not matter.
621
+ source_param .vals = vals .Numbers (- 10 , 10 )
622
+ delegate_param .vals = vals .Numbers (- 5 , 5 )
623
+ delegate_param .validate (1 )
624
+ with pytest .raises (ValueError ):
625
+ delegate_param .validate (6 )
626
+ with pytest .raises (ValueError ):
627
+ delegate_param .validate (11 )
628
+
597
629
598
630
def test_value_validation_with_offset_and_scale () -> None :
599
631
source_param = Parameter (
0 commit comments