@@ -509,6 +509,167 @@ def test_condition_can_be_invoked_for_each_attribute_types(self):
509
509
else :
510
510
self .assertEqual (len (actions ), 0 )
511
511
512
+ def test_condition_can_be_invoked_for_each_attribute_types_with_oldui (self ):
513
+ self .add_entry (self .user , "test_entry" , self .entity )
514
+
515
+ # register TriggerCondition and its Actions
516
+ settingTriggerAction = self .FULL_ACTION_CONFIGURATION_PARAMETERS .copy ()[0 ]
517
+
518
+ for cond_param in self .FULL_CONDITION_CONFIGURATION_PARAMETERS :
519
+ TriggerCondition .register (self .entity , [cond_param ], [settingTriggerAction ])
520
+
521
+ # These are testing parameters whether specifying "vlaue" could invoke TriggerCondition
522
+ # for each typed Attributes.
523
+ test_input_params = [
524
+ {
525
+ "attrname" : "str_trigger" ,
526
+ "value" : [{"data" : "" }],
527
+ "referral_key" : [],
528
+ "will_invoke" : False ,
529
+ },
530
+ {
531
+ "attrname" : "str_trigger" ,
532
+ "value" : [{"data" : "Open Sesame" }],
533
+ "referral_key" : [],
534
+ "will_invoke" : False ,
535
+ },
536
+ {
537
+ "attrname" : "str_trigger" ,
538
+ "value" : [{"data" : FAT_LADY_PASSWDS [0 ]}],
539
+ "referral_key" : [],
540
+ "will_invoke" : True ,
541
+ },
542
+ {
543
+ "attrname" : "ref_trigger" ,
544
+ "value" : [{"data" : None , "index" : "0" }],
545
+ "referral_key" : [],
546
+ "will_invoke" : False ,
547
+ },
548
+ {
549
+ "attrname" : "ref_trigger" ,
550
+ "value" : [{"data" : self .entry_refs [0 ].id , "index" : "0" }],
551
+ "referral_key" : [],
552
+ "will_invoke" : False ,
553
+ },
554
+ {
555
+ "attrname" : "ref_trigger" ,
556
+ "value" : [{"data" : self .entry_refs [2 ].id , "index" : "0" }],
557
+ "referral_key" : [],
558
+ "will_invoke" : True ,
559
+ },
560
+ {
561
+ "attrname" : "named_trigger" ,
562
+ "value" : [{"data" : self .entry_refs [0 ].id , "index" : "0" }],
563
+ "referral_key" : [{"data" : "Open Sesame" , "index" : "0" }],
564
+ "will_invoke" : False ,
565
+ },
566
+ {
567
+ "attrname" : "named_trigger" ,
568
+ "value" : [{"data" : self .entry_refs [0 ].id , "index" : "0" }],
569
+ "referral_key" : [{"data" : "" , "index" : "0" }],
570
+ "will_invoke" : False ,
571
+ },
572
+ {
573
+ "attrname" : "named_trigger" ,
574
+ "value" : [{"data" : None , "index" : "0" }],
575
+ "referral_key" : [{"data" : "Unexpected words" , "index" : "0 " }],
576
+ "will_invoke" : False ,
577
+ },
578
+ {
579
+ "attrname" : "named_trigger" ,
580
+ "value" : [{"data" : None , "index" : "0" }],
581
+ "referral_key" : [{"data" : FAT_LADY_PASSWDS [0 ], "index" : "0" }],
582
+ "will_invoke" : True ,
583
+ },
584
+ {
585
+ "attrname" : "named_trigger" ,
586
+ "value" : [{"data" : self .entry_refs [2 ].id , "index" : "0" }],
587
+ "referral_key" : [{"data" : "" , "index" : "0" }],
588
+ "will_invoke" : True ,
589
+ },
590
+ {
591
+ "attrname" : "named_trigger" ,
592
+ "value" : [{"data" : self .entry_refs [2 ].id , "index" : "0" }],
593
+ "referral_key" : [{"data" : FAT_LADY_PASSWDS [0 ], "index" : "0" }],
594
+ "will_invoke" : True ,
595
+ },
596
+ {
597
+ "attrname" : "arr_str_trigger" ,
598
+ "value" : [{"data" : "" , "index" : "0" }],
599
+ "referral_key" : [],
600
+ "will_invoke" : False ,
601
+ },
602
+ {
603
+ "attrname" : "arr_str_trigger" ,
604
+ "value" : [{"data" : "Open Sesame" , "index" : "0" }],
605
+ "referral_key" : [],
606
+ "will_invoke" : False ,
607
+ },
608
+ {
609
+ "attrname" : "arr_str_trigger" ,
610
+ "value" : [
611
+ {"data" : "Open Sesame" , "index" : "0" },
612
+ {"data" : FAT_LADY_PASSWDS [0 ], "index" : "1" },
613
+ ],
614
+ "referral_key" : [],
615
+ "will_invoke" : True ,
616
+ },
617
+ {"attrname" : "arr_ref_trigger" , "value" : [], "referral_key" : [], "will_invoke" : False },
618
+ {
619
+ "attrname" : "arr_ref_trigger" ,
620
+ "value" : [
621
+ {"data" : self .entry_refs [0 ].id , "index" : "0" },
622
+ {"data" : self .entry_refs [1 ].id , "index" : "1" },
623
+ ],
624
+ "referral_key" : [],
625
+ "will_invoke" : False ,
626
+ },
627
+ {
628
+ "attrname" : "arr_ref_trigger" ,
629
+ "value" : [
630
+ {"data" : self .entry_refs [0 ].id , "index" : "0" },
631
+ {"data" : self .entry_refs [1 ].id , "index" : "1" },
632
+ {"data" : self .entry_refs [2 ].id , "index" : "2" },
633
+ ],
634
+ "referral_key" : [],
635
+ "will_invoke" : True ,
636
+ },
637
+ {
638
+ "attrname" : "arr_named_trigger" ,
639
+ "value" : [{"data" : self .entry_refs [0 ].id , "index" : "0" }],
640
+ "referral_key" : [{"data" : "Open Sesame" , "index" : "0" }],
641
+ "will_invoke" : False ,
642
+ },
643
+ {
644
+ "attrname" : "arr_named_trigger" ,
645
+ "value" : [
646
+ {"data" : self .entry_refs [0 ].id , "index" : "0" },
647
+ {"data" : self .entry_refs [2 ].id , "index" : "1" },
648
+ ],
649
+ "referral_key" : [
650
+ {"data" : "Open Sesame" , "index" : "0" },
651
+ {"data" : FAT_LADY_PASSWDS [0 ], "index" : "1" },
652
+ ],
653
+ "will_invoke" : True ,
654
+ },
655
+ ]
656
+ for test_input_param in test_input_params :
657
+ attr = self .entity .attrs .get (name = test_input_param ["attrname" ])
658
+ actions = TriggerCondition .get_invoked_actions (
659
+ self .entity ,
660
+ [
661
+ {
662
+ "entity_attr_id" : attr .id ,
663
+ "value" : test_input_param ["value" ],
664
+ "referral_key" : test_input_param ["referral_key" ],
665
+ }
666
+ ],
667
+ )
668
+ if test_input_param ["will_invoke" ]:
669
+ self .assertGreaterEqual (len (actions ), 1 )
670
+ else :
671
+ self .assertEqual (len (actions ), 0 )
672
+
512
673
def test_register_conditions_with_blank_values (self ):
513
674
# register TriggerCondition and its Actions
514
675
settingTriggerAction = self .FULL_ACTION_CONFIGURATION_PARAMETERS .copy ()[0 ]
0 commit comments