mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 07:10:42 -08:00
62 lines
1.6 KiB
Python
62 lines
1.6 KiB
Python
import io
|
|
|
|
from _pytest.capture import CaptureFixture
|
|
from _pytest.monkeypatch import MonkeyPatch
|
|
from boxing import play
|
|
|
|
|
|
def test_boxing_bad_opponent(
|
|
monkeypatch: MonkeyPatch, capsys: CaptureFixture[str]
|
|
) -> None:
|
|
monkeypatch.setattr("boxing.Player.get_punch_choice", lambda self: 1)
|
|
monkeypatch.setattr("boxing.get_opponent_stats", lambda: (2, 1))
|
|
monkeypatch.setattr("boxing.is_opponents_turn", lambda: False)
|
|
|
|
opponent = "Anna"
|
|
my_man = "Bob"
|
|
strength = "1"
|
|
weakness = "2"
|
|
|
|
monkeypatch.setattr(
|
|
"sys.stdin",
|
|
io.StringIO(f"{opponent}\n{my_man}\n{strength}\n{weakness}\n1\n1\n1"),
|
|
)
|
|
play()
|
|
actual = capsys.readouterr().out
|
|
expected = """BOXING
|
|
CREATIVE COMPUTING MORRISTOWN, NEW JERSEY
|
|
|
|
|
|
|
|
BOXING OLYMPIC STYLE (3 ROUNDS -- 2 OUT OF 3 WINS)
|
|
WHAT IS YOUR OPPONENT'S NAME? WHAT IS YOUR MAN'S NAME? DIFFERENT PUNCHES ARE 1 FULL SWING 2 HOOK 3 UPPERCUT 4 JAB
|
|
WHAT IS YOUR MAN'S BEST? WHAT IS HIS VULNERABILITY? Anna'S ADVANTAGE is 1 AND VULNERABILITY IS SECRET.
|
|
ROUND 1 BEGINS...
|
|
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob WINS ROUND 1
|
|
ROUND 2 BEGINS...
|
|
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob SWINGS AND HE CONNECTS!
|
|
Bob WINS ROUND 2
|
|
ROUND 3 BEGINS...
|
|
|
|
Bob AMAZINGLY WINS
|
|
|
|
|
|
AND NOW GOODBYE FROM THE OLYMPIC ARENA.
|
|
"""
|
|
assert actual.split("\n") == expected.split("\n")
|