@@ -1158,20 +1158,56 @@ def test_describe(self) -> None:
11581158 mock_action2 .describe .return_value = "produce stuff!"
11591159
11601160 t = Either (mock_action1 ).or_ (mock_action2 )
1161- assert t .describe () == "Either do thing or produce stuff"
1161+ assert t .describe () == "Either ( do thing or produce stuff) "
11621162
11631163 def test_multi_action_describe (self ) -> None :
1164- mock_action1 = FakeAction ()
1165- mock_action1 .describe .return_value = "DoThing!"
1166- mock_action2 = FakeAction ()
1167- mock_action2 .describe .return_value = "DoStuff!"
1168- mock_action3 = FakeAction ()
1169- mock_action3 .describe .return_value = "PerformFoo."
1170- mock_action4 = FakeAction ()
1171- mock_action4 .describe .return_value = "PerformBar."
1172-
1173- t = Either (mock_action1 , mock_action2 ).or_ (mock_action3 , mock_action4 )
1174- assert t .describe () == "Either doThing, doStuff or performFoo, performBar"
1164+ act1 = FakeAction ()
1165+ act1 .describe .return_value = "DoAct1!"
1166+ act2 = FakeAction ()
1167+ act2 .describe .return_value = "DoAct2!"
1168+ act3 = FakeAction ()
1169+ act3 .describe .return_value = "DoAct3."
1170+ act4 = FakeAction ()
1171+ act4 .describe .return_value = "DoAct4?"
1172+
1173+ t1 = Either (act1 , act2 ).or_ (act3 , act4 )
1174+ t2 = Either (act1 ).or_ (act3 , act4 )
1175+ t3 = Either (act1 , act2 ).or_ (act3 )
1176+
1177+ assert t1 .describe () == "Either (doAct1, doAct2 or doAct3, doAct4)"
1178+ assert t2 .describe () == "Either (doAct1 or doAct3, doAct4)"
1179+ assert t3 .describe () == "Either (doAct1, doAct2 or doAct3)"
1180+
1181+ def test_multi_action_describe_embedded (self ) -> None :
1182+ act1 = FakeAction ()
1183+ act1 .describe .return_value = "DoAct1!"
1184+ act2 = FakeAction ()
1185+ act2 .describe .return_value = "DoAct2!"
1186+ act3 = FakeAction ()
1187+ act3 .describe .return_value = "DoAct3."
1188+ act4 = FakeAction ()
1189+ act4 .describe .return_value = "DoAct4?"
1190+ act5 = FakeAction ()
1191+ act5 .describe .return_value = "DoAct5!"
1192+ act6 = FakeAction ()
1193+ act6 .describe .return_value = "DoAct6!"
1194+ act7 = FakeAction ()
1195+ act7 .describe .return_value = "DoAct7."
1196+ act8 = FakeAction ()
1197+ act8 .describe .return_value = "DoAct8."
1198+
1199+ t1 = Either (act1 , Either (act2 , act3 ).or_ (act4 , act5 ), act6 ).or_ (act7 )
1200+ exp1 = "Either (doAct1, either (doAct2, doAct3 or doAct4, doAct5), doAct6 or doAct7)"
1201+
1202+ t2 = Either (act1 , Either (act2 ).or_ (act3 )).or_ (act4 )
1203+ exp2 = "Either (doAct1, either (doAct2 or doAct3) or doAct4)"
1204+
1205+ t3 = Either (Either (act1 ).or_ (act2 )).or_ (act3 )
1206+ exp3 = "Either (either (doAct1 or doAct2) or doAct3)"
1207+
1208+ assert t1 .describe () == exp1
1209+ assert t2 .describe () == exp2
1210+ assert t3 .describe () == exp3
11751211
11761212 def test_first_action_passes (self , Tester : Actor , mocker : MockerFixture ) -> None :
11771213 mock_clear = mocker .spy (the_narrator , "clear_backup" )
0 commit comments