add tests
This commit is contained in:
parent
c4d23b6e37
commit
5811821ccf
@ -63,7 +63,7 @@ class Sacagaway(CardEvent):
|
||||
Tutti i giocatori giocano a carte scoperte (tranne il ruolo!).
|
||||
"""
|
||||
def __init__(self):
|
||||
super().__init__("Sacagaway", "🏇")
|
||||
super().__init__("Sacagaway", "🌄")
|
||||
|
||||
class WildWestShow(CardEvent):
|
||||
"""
|
||||
|
@ -614,7 +614,8 @@ class Game:
|
||||
c = self.deck.pick_and_scrap()
|
||||
G.sio.emit('chat_message', room=self.name, data=f'_flipped|Helena Zontero|{c.name}|{c.num_suit()}')
|
||||
if c.check_suit(self, [cs.Suit.HEARTS, cs.Suit.DIAMONDS]):
|
||||
pls = (p for p in self.players if not isinstance(p.role, roles.Sheriff))
|
||||
G.sio.emit('chat_message', room=self.name, data=f'_swapped_roles|Helena Zontero|{c.name}|{c.num_suit()}')
|
||||
pls = [p for p in self.players if not isinstance(p.role, roles.Sheriff)]
|
||||
newroles = [p.role for p in pls]
|
||||
random.shuffle(newroles)
|
||||
for p in pls:
|
||||
|
@ -1,3 +1,39 @@
|
||||
import pytest
|
||||
from bang.characters import Character
|
||||
from bang.game import Game
|
||||
from bang.players import Player
|
||||
from tests.dummy_socket import DummySocket
|
||||
from globals import G
|
||||
G.sio = DummySocket()
|
||||
|
||||
|
||||
def started_game(expansions, players=4):
|
||||
g = Game('test')
|
||||
g.expansions = expansions
|
||||
ps = [Player(f'p{i}', f'p{i}') for i in range(players)]
|
||||
for p in ps:
|
||||
g.add_player(p)
|
||||
g.start_game()
|
||||
for p in ps:
|
||||
p.available_characters = [Character('test_char', 4)]
|
||||
p.set_character(p.available_characters[0].name)
|
||||
return g
|
||||
|
||||
|
||||
def set_events(g: Game, event_cards):
|
||||
g.deck.event_cards = event_cards
|
||||
|
||||
|
||||
def current_player(g: Game):
|
||||
return g.players[g.turn]
|
||||
|
||||
|
||||
def next_player(g: Game):
|
||||
return g.players[(g.turn + 1) % len(g.players)]
|
||||
|
||||
|
||||
def current_player_with_cards(g: Game, cards):
|
||||
p = current_player(g)
|
||||
p.draw('')
|
||||
p.hand = cards
|
||||
return p
|
60
backend/tests/wild_west_show_events_test.py
Normal file
60
backend/tests/wild_west_show_events_test.py
Normal file
@ -0,0 +1,60 @@
|
||||
|
||||
from tests import started_game, set_events, current_player, next_player, current_player_with_cards
|
||||
|
||||
from bang.expansions.wild_west_show.card_events import *
|
||||
from bang.cards import Card, Suit
|
||||
|
||||
|
||||
# test Camposanto
|
||||
def test_camposanto():
|
||||
g = started_game(['wild_west_show'], 4)
|
||||
set_events(g, [Camposanto()])
|
||||
current_player_with_cards(g, []).end_turn()
|
||||
p = current_player_with_cards(g, [])
|
||||
p.lives = 0
|
||||
p.notify_self()
|
||||
p1 = current_player_with_cards(g, [])
|
||||
p1.lives = 0
|
||||
p1.notify_self()
|
||||
current_player_with_cards(g, []).end_turn()
|
||||
current_player_with_cards(g, []).end_turn()
|
||||
assert p.is_my_turn
|
||||
assert p.lives == 1
|
||||
current_player_with_cards(g, []).end_turn()
|
||||
assert p1.is_my_turn
|
||||
assert p1.lives == 1
|
||||
|
||||
|
||||
# test DarlingValentine
|
||||
def test_darling_valentine():
|
||||
g = started_game(['wild_west_show'], 4)
|
||||
set_events(g, [DarlingValentine()])
|
||||
p = next_player(g)
|
||||
hand = p.hand.copy()
|
||||
current_player_with_cards(g, []).end_turn()
|
||||
assert hand != current_player(g).hand
|
||||
|
||||
|
||||
# test DorothyRage
|
||||
|
||||
# test HelenaZontero
|
||||
def test_helena_zontero():
|
||||
g = started_game(['wild_west_show'], 6)
|
||||
set_events(g, [None, HelenaZontero()])
|
||||
roles = [p.role.name for p in g.players]
|
||||
for i in range(5):
|
||||
current_player_with_cards(g, []).end_turn()
|
||||
g.deck.cards = [Card(Suit.HEARTS, 'card', 0)]*5
|
||||
current_player_with_cards(g, []).end_turn()
|
||||
roles2 = [p.role.name for p in g.players]
|
||||
assert roles != roles2
|
||||
|
||||
# test LadyRosaDelTexas
|
||||
|
||||
# test MissSusanna
|
||||
|
||||
# test RegolamentoDiConti
|
||||
|
||||
# test Sacagaway
|
||||
|
||||
# test WildWestShow
|
Loading…
Reference in New Issue
Block a user