add more tests
This commit is contained in:
parent
70740b8493
commit
b307f2bb34
@ -6,6 +6,7 @@ from bang.game import Game
|
||||
from bang.players import Player, PendingAction
|
||||
from bang.cards import *
|
||||
|
||||
# test card Barile
|
||||
def test_barile():
|
||||
sio = DummySocket()
|
||||
g = Game('test', sio)
|
||||
@ -41,3 +42,59 @@ def test_barile():
|
||||
assert barrel_guy.lives == barrel_guy.max_lives - 1
|
||||
assert g.players[g.turn].pending_action == PendingAction.PLAY
|
||||
|
||||
#test card Volcanic
|
||||
def test_volcanic():
|
||||
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)
|
||||
p.character = Character('test_char', 3)
|
||||
p.hand = []
|
||||
volcanic_guy = g.players[g.turn]
|
||||
volcanic_guy.draw('')
|
||||
volcanic_guy.hand = [Volcanic(0,0), Bang(0,0), Bang(0,0)]
|
||||
volcanic_guy.play_card(0)
|
||||
assert isinstance(volcanic_guy.equipment[0], Volcanic)
|
||||
volcanic_guy.play_card(0, g.players[(g.turn+1)%3].name)
|
||||
assert len(volcanic_guy.hand) == 1
|
||||
volcanic_guy.play_card(0, g.players[(g.turn+1)%3].name)
|
||||
assert len(volcanic_guy.hand) == 0
|
||||
|
||||
# test card Dinamite
|
||||
def test_dinamite():
|
||||
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)
|
||||
p.character = Character('test_char', 4)
|
||||
p.hand = []
|
||||
dinamite_guy = g.players[g.turn]
|
||||
dinamite_guy.draw('')
|
||||
dinamite_guy.hand = [Dinamite(0,0)]
|
||||
dinamite_guy.play_card(0)
|
||||
assert isinstance(dinamite_guy.equipment[0], Dinamite)
|
||||
dinamite_guy.end_turn()
|
||||
g.players[g.turn].draw('')
|
||||
g.players[g.turn].hand = []
|
||||
g.players[g.turn].end_turn()
|
||||
g.players[g.turn].draw('')
|
||||
g.players[g.turn].hand = []
|
||||
g.players[g.turn].end_turn()
|
||||
g.deck.cards.insert(0, Dinamite(Suit.HEARTS, 5))
|
||||
dinamite_guy.pick()
|
||||
assert len(dinamite_guy.equipment) == 0
|
||||
dinamite_guy.draw('')
|
||||
dinamite_guy.end_turn()
|
||||
assert len(g.players[g.turn].equipment) == 1
|
||||
g.deck.cards.insert(0, Dinamite(Suit.SPADES, 5))
|
||||
g.players[g.turn].pick()
|
||||
assert len(g.players[g.turn].equipment) == 0
|
||||
assert g.players[g.turn].lives == 1
|
@ -2,8 +2,10 @@ from tests.dummy_socket import DummySocket
|
||||
from bang.deck import Deck
|
||||
from bang.game import Game
|
||||
from bang.players import Player, PendingAction
|
||||
from bang.roles import *
|
||||
from bang.cards import *
|
||||
|
||||
# test that game can start
|
||||
def test_game_start():
|
||||
sio = DummySocket()
|
||||
g = Game('test', sio)
|
||||
@ -32,3 +34,58 @@ def test_game_start():
|
||||
p3.set_character(p3.available_characters[0].name)
|
||||
assert p3.character != None
|
||||
assert g.players[g.turn].pending_action == PendingAction.DRAW
|
||||
|
||||
# test that dodge_city is added to games with more than 8 players
|
||||
def test_dodge_city():
|
||||
sio = DummySocket()
|
||||
g = Game('test', sio)
|
||||
for i in range(9):
|
||||
p = Player(f'p{i}', f'p{i}', sio)
|
||||
g.add_player(p)
|
||||
assert 'dodge_city' in g.expansions
|
||||
|
||||
# test that a game with 2 players has only renegade as role
|
||||
def test_renegade_only():
|
||||
sio = DummySocket()
|
||||
g = Game('test', sio)
|
||||
p1 = Player('p1', 'p1', sio)
|
||||
g.add_player(p1)
|
||||
p2 = Player('p2', 'p2', sio)
|
||||
g.add_player(p2)
|
||||
g.start_game()
|
||||
assert isinstance(g.players[0].role, Renegade)
|
||||
assert isinstance(g.players[1].role, Renegade)
|
||||
|
||||
# test that a game with 3 player has Renegade, Vice and Outlaw as roles
|
||||
def test_renegade_vice_outlaw():
|
||||
sio = DummySocket()
|
||||
g = Game('test', sio)
|
||||
for i in range(3):
|
||||
p = Player(f'p{i}', f'p{i}', sio)
|
||||
g.add_player(p)
|
||||
g.start_game()
|
||||
roles = {p.role.name for p in g.players}
|
||||
assert len(roles) == 3
|
||||
|
||||
# test that a game with 4 players has all roles except the deputy
|
||||
def test_4_players_roles():
|
||||
sio = DummySocket()
|
||||
g = Game('test', sio)
|
||||
for i in range(4):
|
||||
p = Player(f'p{i}', f'p{i}', sio)
|
||||
g.add_player(p)
|
||||
g.start_game()
|
||||
roles = {p.role.name for p in g.players}
|
||||
assert len(roles) == 3
|
||||
|
||||
# test that a game with 5 players has all roles
|
||||
def test_5_players_roles():
|
||||
sio = DummySocket()
|
||||
g = Game('test', sio)
|
||||
for i in range(5):
|
||||
p = Player(f'p{i}', f'p{i}', sio)
|
||||
g.add_player(p)
|
||||
g.start_game()
|
||||
roles = {p.role.name for p in g.players}
|
||||
assert len(roles) == 4
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user