bang/backend/tests/cards_test.py
2021-07-01 10:06:55 +02:00

41 lines
1.5 KiB
Python

from backend.bang.cards import Bang, Barile, Suit, Volcanic
from tests.dummy_socket import DummySocket
from bang.deck import Deck
from bang.game import Game
from bang.players import Player, PendingAction
from bang.cards import *
def test_barile():
sio = DummySocket()
g = Game('test', sio)
ps = [Player(f'p{i}', f'p{i}', sio) for i in range(3)]
for p in ps:
g.add_player(p)
g.start_game()
for p in ps:
p.set_character(p.available_characters[0].name)
barrel_guy = g.players[g.turn]
barrel_guy.draw('')
barrel_guy.hand = [Barile(0,0)]
barrel_guy.play_card(0)
assert isinstance(barrel_guy.equipment[0], Barile)
barrel_guy.end_turn()
g.players[g.turn].draw('')
g.players[g.turn].hand = [Volcanic(0,0), Bang(0,0), Bang(0,0)]
g.players[g.turn].play_card(0)
g.players[g.turn].play_card(0, barrel_guy.name)
assert g.players[g.turn].pending_action == PendingAction.WAIT
assert barrel_guy.pending_action == PendingAction.PICK
g.deck.cards[0] = Bang(Suit.HEARTS, 5)
barrel_guy.pick()
assert barrel_guy.pending_action == PendingAction.WAIT
assert barrel_guy.lives == barrel_guy.max_lives
assert g.players[g.turn].pending_action == PendingAction.PLAY
g.players[g.turn].play_card(0, barrel_guy.name)
g.deck.cards[0] = Bang(Suit.SPADES, 5)
barrel_guy.pick()
assert barrel_guy.pending_action == PendingAction.WAIT
assert barrel_guy.lives == barrel_guy.max_lives - 1
assert g.players[g.turn].pending_action == PendingAction.PLAY