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.players import Player, PendingAction
|
||||||
from bang.cards import *
|
from bang.cards import *
|
||||||
|
|
||||||
|
# test card Barile
|
||||||
def test_barile():
|
def test_barile():
|
||||||
sio = DummySocket()
|
sio = DummySocket()
|
||||||
g = Game('test', sio)
|
g = Game('test', sio)
|
||||||
@ -41,3 +42,59 @@ def test_barile():
|
|||||||
assert barrel_guy.lives == barrel_guy.max_lives - 1
|
assert barrel_guy.lives == barrel_guy.max_lives - 1
|
||||||
assert g.players[g.turn].pending_action == PendingAction.PLAY
|
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.deck import Deck
|
||||||
from bang.game import Game
|
from bang.game import Game
|
||||||
from bang.players import Player, PendingAction
|
from bang.players import Player, PendingAction
|
||||||
|
from bang.roles import *
|
||||||
from bang.cards import *
|
from bang.cards import *
|
||||||
|
|
||||||
|
# test that game can start
|
||||||
def test_game_start():
|
def test_game_start():
|
||||||
sio = DummySocket()
|
sio = DummySocket()
|
||||||
g = Game('test', sio)
|
g = Game('test', sio)
|
||||||
@ -32,3 +34,58 @@ def test_game_start():
|
|||||||
p3.set_character(p3.available_characters[0].name)
|
p3.set_character(p3.available_characters[0].name)
|
||||||
assert p3.character != None
|
assert p3.character != None
|
||||||
assert g.players[g.turn].pending_action == PendingAction.DRAW
|
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