Example #1
0
    def get(self):
        now_hour = datetime.datetime.now().hour
        eligible_teams = []
        for team in Team.query().order(Team.ranked_last_match):
            if team.ranked_start_hour is None or team.ranked_end_hour is None:
                continue
            if not is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(team.ranked_start_hour, team.ranked_end_hour, now_hour):
                continue
            if Player.query(Player.team == team.key, Player.doing == None).count() > 0: # Be aware that Player.doing == None will bug if you removed doing manually in dev console
                eligible_teams.append(team)

        while len(eligible_teams) >= 2:
            match = TeamMatch(type="TeamRanked")
            players = match.setup_team_match([eligible_teams.pop(), eligible_teams.pop()])
            for player in players:
                player.doing = match.key
                player.put()
                websocket_notify_player("Player_MatchFound", player.key, None, match.get_data())
Example #2
0
    def test_is_now_in_start_end_time_range_adjusted_for_timezone_offset_issue(self):
        # Underflow
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(-2, 2, 21))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(-2, 2, 22))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(-2, 2, 23))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(-2, 2, 24))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(-2, 2, 0))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(-2, 2, 1))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(-2, 2, 2))

        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(-2, 22, 2))

        # Overflow
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(21, 26, 20))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(21, 26, 21))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(21, 26, 22))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(21, 26, 23))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(21, 26, 24))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(21, 26, 0))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(21, 26, 1))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(21, 26, 2))

        # Normal
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(11, 15, 9))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(11, 15, 10))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(11, 15, 11))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(11, 15, 12))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(11, 15, 13))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(11, 15, 14))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(11, 15, 15))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(11, 15, 16))

        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(0, 24, 0))

        # Normal - edge case 0
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(0, 1, 23))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(0, 1, 24))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(0, 1, 0))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(0, 1, 1))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(0, 1, 2))

        # Normal - edge case 24
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(23, 24, 22))
        self.assertTrue(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(23, 24, 23))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(23, 24, 24))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(23, 24, 0))
        self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(23, 24, 1))

        # Equal, this is the same as disabled
        for hour in range(25):
            self.assertFalse(utils.is_hour_in_start_end_time_range_adjusted_for_timezone_offset_issue(hour, hour, hour))