@@ -1199,20 +1199,56 @@ def test_describe(self) -> None:
11991199 mock_action2 .describe .return_value = "produce stuff!"
12001200
12011201 t = Either (mock_action1 ).or_ (mock_action2 )
1202- assert t .describe () == "Either do thing or produce stuff"
1202+ assert t .describe () == "Either ( do thing or produce stuff) "
12031203
12041204 def test_multi_action_describe (self ) -> None :
1205- mock_action1 = FakeAction ()
1206- mock_action1 .describe .return_value = "DoThing!"
1207- mock_action2 = FakeAction ()
1208- mock_action2 .describe .return_value = "DoStuff!"
1209- mock_action3 = FakeAction ()
1210- mock_action3 .describe .return_value = "PerformFoo."
1211- mock_action4 = FakeAction ()
1212- mock_action4 .describe .return_value = "PerformBar."
1213-
1214- t = Either (mock_action1 , mock_action2 ).or_ (mock_action3 , mock_action4 )
1215- assert t .describe () == "Either doThing, doStuff or performFoo, performBar"
1205+ act1 = FakeAction ()
1206+ act1 .describe .return_value = "DoAct1!"
1207+ act2 = FakeAction ()
1208+ act2 .describe .return_value = "DoAct2!"
1209+ act3 = FakeAction ()
1210+ act3 .describe .return_value = "DoAct3."
1211+ act4 = FakeAction ()
1212+ act4 .describe .return_value = "DoAct4?"
1213+
1214+ t1 = Either (act1 , act2 ).or_ (act3 , act4 )
1215+ t2 = Either (act1 ).or_ (act3 , act4 )
1216+ t3 = Either (act1 , act2 ).or_ (act3 )
1217+
1218+ assert t1 .describe () == "Either (doAct1, doAct2 or doAct3, doAct4)"
1219+ assert t2 .describe () == "Either (doAct1 or doAct3, doAct4)"
1220+ assert t3 .describe () == "Either (doAct1, doAct2 or doAct3)"
1221+
1222+ def test_multi_action_describe_embedded (self ) -> None :
1223+ act1 = FakeAction ()
1224+ act1 .describe .return_value = "DoAct1!"
1225+ act2 = FakeAction ()
1226+ act2 .describe .return_value = "DoAct2!"
1227+ act3 = FakeAction ()
1228+ act3 .describe .return_value = "DoAct3."
1229+ act4 = FakeAction ()
1230+ act4 .describe .return_value = "DoAct4?"
1231+ act5 = FakeAction ()
1232+ act5 .describe .return_value = "DoAct5!"
1233+ act6 = FakeAction ()
1234+ act6 .describe .return_value = "DoAct6!"
1235+ act7 = FakeAction ()
1236+ act7 .describe .return_value = "DoAct7."
1237+ act8 = FakeAction ()
1238+ act8 .describe .return_value = "DoAct8."
1239+
1240+ t1 = Either (act1 , Either (act2 , act3 ).or_ (act4 , act5 ), act6 ).or_ (act7 )
1241+ exp1 = "Either (doAct1, either (doAct2, doAct3 or doAct4, doAct5), doAct6 or doAct7)"
1242+
1243+ t2 = Either (act1 , Either (act2 ).or_ (act3 )).or_ (act4 )
1244+ exp2 = "Either (doAct1, either (doAct2 or doAct3) or doAct4)"
1245+
1246+ t3 = Either (Either (act1 ).or_ (act2 )).or_ (act3 )
1247+ exp3 = "Either (either (doAct1 or doAct2) or doAct3)"
1248+
1249+ assert t1 .describe () == exp1
1250+ assert t2 .describe () == exp2
1251+ assert t3 .describe () == exp3
12161252
12171253 def test_first_action_passes (self , Tester : Actor , mocker : MockerFixture ) -> None :
12181254 mock_clear = mocker .spy (the_narrator , "clear_backup" )
0 commit comments