コード例 #1
0
class TestResolveInvalidHandler(unittest.TestCase):
    def setUp(self):
        random = RandomMock()
        self.slack_client = MockSlackClient()
        self.game_state = GameState(self.slack_client,
                                    random_func=random,
                                    chat=Chat(self.slack_client,
                                              "chat_chanel"),
                                    channel="chat_chanel")

        self.handler = ResolveInvalidHandler(self.game_state)
        self._add_players(self.slack_client, self.game_state)

    def _add_players(self, slack_client, game_state):
        manager = game_state.team_manager
        manager.add_player(Player("p1", slack_client))  # red team
        manager.add_player(Player("p2", slack_client))
        manager.add_player(Player("p3", slack_client))  # blue team
        manager.add_player(Player("p4", slack_client))
        manager.add_player(Player("p5", slack_client))
        manager.pick_teams()

    def test_invalid_word(self):
        data = {"text": "foo", "channel": "p3_dm"}
        self.handler.process(data)
        self.assertEqual("Invalid! Please try again...",
                         self.slack_client.api_calls[-1][1])

    def test_process(self):
        data = {"text": "band", "channel": "p3_dm"}
        self.handler.process(data)
        self.assertEqual("Still Blue Team's turn. Getting next clue...",
                         self.slack_client.api_calls[-1][1])
        self.assertTrue(isinstance(self.game_state.handler, ClueInputHandler))
class TestResolveInvalidHandler(unittest.TestCase):

    def setUp(self):
        random = RandomMock()
        self.slack_client = MockSlackClient()
        self.game_state = GameState(self.slack_client,
                                    random_func=random,
                                    chat=Chat(self.slack_client, "chat_chanel"),
                                    channel="chat_chanel")

        self.handler = ResolveInvalidHandler(self.game_state)
        self._add_players(self.slack_client, self.game_state)

    def _add_players(self, slack_client, game_state):
        manager = game_state.team_manager
        manager.add_player(Player("p1", slack_client))  # red team
        manager.add_player(Player("p2", slack_client))
        manager.add_player(Player("p3", slack_client))  # blue team
        manager.add_player(Player("p4", slack_client))
        manager.add_player(Player("p5", slack_client))
        manager.pick_teams()

    def test_invalid_word(self):
        data = {"text": "foo", "channel": "p3_dm"}
        self.handler.process(data)
        self.assertEqual("Invalid! Please try again...", self.slack_client.api_calls[-1][1])

    def test_process(self):
        data = {"text": "band", "channel": "p3_dm"}
        self.handler.process(data)
        self.assertEqual("Still Blue Team's turn. Getting next clue...", self.slack_client.api_calls[-1][1])
        self.assertTrue(isinstance(self.game_state.handler, ClueInputHandler))
コード例 #3
0
    def setUp(self):
        random = RandomMock()
        self.slack_client = MockSlackClient()
        self.game_state = GameState(self.slack_client,
                                    random_func=random,
                                    chat=Chat(self.slack_client,
                                              "chat_chanel"),
                                    channel="chat_chanel")

        self.handler = ResolveInvalidHandler(self.game_state)
        self._add_players(self.slack_client, self.game_state)
コード例 #4
0
class GameState:
    def __init__(self,
                 slack_client,
                 random_func=None,
                 chat=None,
                 channel=None):
        self.chat = chat
        self.channel = channel
        self.team_manager = TeamManager(self.chat, random_func=random_func)
        self.slack_client = slack_client
        self.handler = PendingStartHandler(self)
        self.board = Board(self.chat, random_func=random_func)
        self.clue_input_handler = None
        self.rand_func = random_func
        self.clue_number = None
        self.previous_handler = None
        if not self.rand_func:
            self.random_func = random

    def pending_start_complete(self):
        self.handler = GenerateGameHandler(self)

    def generate_game_complete(self):
        if not self.clue_input_handler:
            self.clue_input_handler = ClueInputHandler(self)
        self.handler = self.clue_input_handler

    def clue_input_complete(self, clue_number):
        self.clue_number = clue_number
        self.handler = GuessInputHandler(self, clue_number)

    def guess_input_complete(self):
        self.generate_game_complete()

    def interrupt_handler(self, handler):
        self.previous_handler = self.handler
        self.handler = handler

    def restore_handler(self):
        self.handler = self.previous_handler
        self.previous_handler = None

    def invalid_handler_complete(self):
        self.previous_handler = None
        self.handler = ResolveInvalidHandler(self)
        self.handler.start()

    def resolve_invalid_handler_complete(self):
        self.generate_game_complete()
コード例 #5
0
class GameState:
    def __init__(self, slack_client, random_func=None, chat=None, channel=None):
        self.chat = chat
        self.channel = channel
        self.team_manager = TeamManager(self.chat, random_func=random_func)
        self.slack_client = slack_client
        self.handler = PendingStartHandler(self)
        self.board = Board(self.chat, random_func=random_func)
        self.clue_input_handler = None
        self.rand_func = random_func
        self.clue_number = None
        self.previous_handler = None
        if not self.rand_func:
            self.random_func = random
        
    def pending_start_complete(self):
        self.handler = GenerateGameHandler(self)
        
    def generate_game_complete(self):
        if not self.clue_input_handler:
            self.clue_input_handler = ClueInputHandler(self)
        self.handler = self.clue_input_handler
        
    def clue_input_complete(self, clue_number):
        self.clue_number = clue_number
        self.handler = GuessInputHandler(self, clue_number)
        
    def guess_input_complete(self):
        self.generate_game_complete()

    def interrupt_handler(self, handler):
        self.previous_handler = self.handler
        self.handler = handler

    def restore_handler(self):
        self.handler = self.previous_handler
        self.previous_handler = None

    def invalid_handler_complete(self):
        self.previous_handler = None
        self.handler = ResolveInvalidHandler(self)
        self.handler.start()

    def resolve_invalid_handler_complete(self):
        self.generate_game_complete()
    def setUp(self):
        random = RandomMock()
        self.slack_client = MockSlackClient()
        self.game_state = GameState(self.slack_client,
                                    random_func=random,
                                    chat=Chat(self.slack_client, "chat_chanel"),
                                    channel="chat_chanel")

        self.handler = ResolveInvalidHandler(self.game_state)
        self._add_players(self.slack_client, self.game_state)
コード例 #7
0
 def __init__(self, slack_client, random_func=None, chat=None, channel=None):
     self.chat = chat
     self.channel = channel
     self.team_manager = TeamManager(self.chat, random_func=random_func)
     self.slack_client = slack_client
     self.handler = PendingStartHandler(self)
     self.board = Board(self.chat, random_func=random_func)
     self.clue_input_handler = None
     self.rand_func = random_func
     self.clue_number = None
     self.previous_handler = None
     if not self.rand_func:
         self.random_func = random
コード例 #8
0
 def __init__(self,
              slack_client,
              random_func=None,
              chat=None,
              channel=None):
     self.chat = chat
     self.channel = channel
     self.team_manager = TeamManager(self.chat, random_func=random_func)
     self.slack_client = slack_client
     self.handler = PendingStartHandler(self)
     self.board = Board(self.chat, random_func=random_func)
     self.clue_input_handler = None
     self.rand_func = random_func
     self.clue_number = None
     self.previous_handler = None
     if not self.rand_func:
         self.random_func = random
コード例 #9
0
 def invalid_handler_complete(self):
     self.previous_handler = None
     self.handler = ResolveInvalidHandler(self)
     self.handler.start()
コード例 #10
0
 def clue_input_complete(self, clue_number):
     self.clue_number = clue_number
     self.handler = GuessInputHandler(self, clue_number)
コード例 #11
0
 def pending_start_complete(self):
     self.handler = GenerateGameHandler(self)
コード例 #12
0
 def invalid_handler_complete(self):
     self.previous_handler = None
     self.handler = ResolveInvalidHandler(self)
     self.handler.start()
コード例 #13
0
 def clue_input_complete(self, clue_number):
     self.clue_number = clue_number
     self.handler = GuessInputHandler(self, clue_number)
コード例 #14
0
 def pending_start_complete(self):
     self.handler = GenerateGameHandler(self)