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

View File

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