Example #1
0
 def test_invalid_ref_number(self, mock_action_get_by_id):
     """ Invalid ref number, cannot find action """
     mock_action_get_by_id.return_value = None
     
     with self.assertRaises(ReplyError) as e:
         Reply.handler("1", "Y", None)
     self.assertEquals("Reply ref num is invalid. Ref num: 1", e.exception.message)
Example #2
0
    def test_invalid_ref_number(self, mock_action_get_by_id):
        """ Invalid ref number, cannot find action """
        mock_action_get_by_id.return_value = None

        with self.assertRaises(ReplyError) as e:
            Reply.handler("1", "Y", None)
        self.assertEquals("Reply ref num is invalid. Ref num: 1",
                          e.exception.message)
Example #3
0
    def test_invalid_response(self, mock_action_get_by_id):
        """ Response is not Y, y, N, n """
        ref = "1"
        mock_action_get_by_id.return_value = Action()

        with self.assertRaises(ReplyError) as e:
            Reply.handler(ref, ["F"], Player())
        self.assertEquals(e.exception.message, "Reply {} is invalid. Ref num: {}".\
                format("F", ref))
Example #4
0
    def test_invalid_response(self, mock_action_get_by_id):
        """ Response is not Y, y, N, n """
        ref = "1"
        mock_action_get_by_id.return_value = Action()

        with self.assertRaises(ReplyError) as e:
            Reply.handler(ref, ["F"], Player())
        self.assertEquals(e.exception.message, "Reply {} is invalid. Ref num: {}".\
                format("F", ref))
Example #5
0
    def test_disarm(self, mock_action_get_by_id, mock_disarm_handler):
        """ Test disarm """
        ref = "1"
        action = Action()
        action.action = "DISARM"
        mock_action_get_by_id.return_value = action
        mock_disarm_handler.return_value = None  # Don't care about response because handled by other unit tests.

        Reply.handler(ref, ["Y"], Player())
        mock_disarm_handler.assert_called_once_with(action, "Y")
Example #6
0
    def test_valid_kill_no_team_push(selfi, mock_action_get_by_id, mock_kill_handler):
        """ Valid kill, but team not killed """
        ref = "1"
        action = Action()
        action.action = "KILL"
        mock_action_get_by_id.return_value = action
        mock_kill_handler.return_value = None

        Reply.handler(ref, ["Y"], Player())
        mock_kill_handler.assert_called_once_with(action, "Y")
Example #7
0
    def test_disarm(self, mock_action_get_by_id, mock_disarm_handler):
        """ Test disarm """    
        ref = "1"
        action = Action()
        action.action = "DISARM"
        mock_action_get_by_id.return_value = action
        mock_disarm_handler.return_value = None # Don't care about response because handled by other unit tests.

        Reply.handler(ref, ["Y"], Player())
        mock_disarm_handler.assert_called_once_with(action, "Y")
Example #8
0
    def test_valid_kill_no_team_push(selfi, mock_action_get_by_id,
                                     mock_kill_handler):
        """ Valid kill, but team not killed """
        ref = "1"
        action = Action()
        action.action = "KILL"
        mock_action_get_by_id.return_value = action
        mock_kill_handler.return_value = None

        Reply.handler(ref, ["Y"], Player())
        mock_kill_handler.assert_called_once_with(action, "Y")
Example #9
0
    def inner_handler(cls, message):
        """ Return [(number, msg),...]"""
        action, params = CommandHandler.get_command(message.Body)
        attacker = Util.get_attacker(message.From)

        if action == "KILL":
            return Kill.handler(attacker, params)
        elif action[1:] == "REPLY":
            ref = params.pop(0)[:-1]
            return Reply.handler(ref, params, attacker)
        elif action == "BOMB":
            return Bomb.handler(attacker, params)
        elif action == "INVUL":
            return Invul.handler(attacker, params)
        elif action == "DISARM":
            return Disarm.handler(attacker, params)
        elif action == "SNIPE":
            if message.From != WEI_HAN:
                raise CommandError(action)
            sniper = Player.query(Player.codename == params[0]).get()
            if sniper == None:
                raise DbError(params[0])
            return Snipe.handler(sniper, params[1])
        elif action == "?":
            msg = "Guide for SAMSU Assassins:\n"
            msg += "KILL <target codename>\n"
            msg += "BOMB <mm> <dd> <hour> <min> <place>\n"
            msg += "INVUL <target codename> <mm> <dd> <hour> <min>\n"
            msg += "DISARM <target codename>\n"
            msg += "SNIPE - send message and picture to {}\n".format(WEI_HAN)
            msg += "REPLY - [REPLY <number>] Y or [REPLY <number>] N\n"
            msg += "If you receive an UNKNOWN ERROR or don't get a message that you expect, contact Wei Han at 312-731-0539."
            return [(attacker.key.id(), msg)]
        else:
            raise CommandError(action)