Example #1
0
class Game:
    def __init__(self, slack_client):
        self.slack_client = slack_client       
        self.game_state = GameState(slack_client)
        self.invalid_handler = InvalidHandler(self.game_state)

    def process(self, data):
        # TODO: quit handler
        try:
            is_invalid = self.invalid_handler.is_invalid(data)

            if is_invalid and not isinstance(self.game_state.handler, InvalidHandler):
                self.game_state.interrupt_handler(self.invalid_handler)
                self.invalid_handler.request_invalid_confirmation(data['user'])
            else:
                if self.game_state.handler:
                    self.game_state.handler.process(data)

        except GameEndException:
            self.__init__(self.slack_client)

    def tick(self):
        try:
            if self.game_state.handler:
                self.game_state.handler.tick()
        except GameEndException:
            self.__init__(self.slack_client)
Example #2
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 = InvalidHandler(self.game_state)
     self._add_players(self.slack_client, self.game_state)
 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 = InvalidHandler(self.game_state)
     self._add_players(self.slack_client, self.game_state)
Example #4
0
class TestInvalidHandler(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 = InvalidHandler(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_is_invalid(self):
        data = {'text': 'cn invalid clue', 'channel': 'chat_chanel'}

        result = self.handler.is_invalid(data)

        self.assertTrue(result)

    def test_process(self):
        data = {'text': 'cn invalid clue', 'channel': 'chat_chanel'}

        self.handler.process(data)

        self.assertFalse(
            isinstance(self.game_state.handler, ResolveInvalidHandler))

        data = {'text': 'cn invalid agree', 'channel': 'chat_chanel'}

        self.handler.process(data)

        self.assertTrue(
            isinstance(self.game_state.handler, ResolveInvalidHandler))
        self.assertEqual("Clue deemed invalid! Red Team will gets a freebie",
                         self.slack_client.api_calls[-2][1])
class TestInvalidHandler(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 = InvalidHandler(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_is_invalid(self):
        data = {'text': 'cn invalid clue', 'channel': 'chat_chanel'}

        result = self.handler.is_invalid(data)

        self.assertTrue(result)

    def test_process(self):
        data = {'text': 'cn invalid clue', 'channel': 'chat_chanel'}

        self.handler.process(data)

        self.assertFalse(isinstance(self.game_state.handler, ResolveInvalidHandler))

        data = {'text': 'cn invalid agree', 'channel': 'chat_chanel'}

        self.handler.process(data)

        self.assertTrue(isinstance(self.game_state.handler, ResolveInvalidHandler))
        self.assertEqual("Clue deemed invalid! Red Team will gets a freebie", self.slack_client.api_calls[-2][1])
Example #6
0
 def __init__(self, slack_client):
     self.slack_client = slack_client       
     self.game_state = GameState(slack_client)
     self.invalid_handler = InvalidHandler(self.game_state)