Skip to content

Commit 6b68ec7

Browse files
committed
wrapping parens around Either's try and except
1 parent d35ff7c commit 6b68ec7

2 files changed

Lines changed: 49 additions & 13 deletions

File tree

screenpy/actions/either.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def describe(self) -> str:
7575
get_additive_description(action) for action in self.except_performables
7676
)
7777

78-
return f"Either {try_summary} or {except_summary}"
78+
return f"Either ({try_summary} or {except_summary})"
7979

8080
def perform_as(self, the_actor: Actor) -> None:
8181
"""Direct the Actor to perform one of two performances."""

tests/test_actions.py

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)