add more tests

This commit is contained in:
Alberto Xamin 2021-07-04 12:20:38 +02:00
parent 70740b8493
commit b307f2bb34
No known key found for this signature in database
GPG Key ID: 4F026F48309500A2
2 changed files with 114 additions and 0 deletions

View File

@ -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

View File

@ -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