Example #1
0
def update_team(team_name, team_username, team_password, team_email,
                puzzle_name):
    # Team name must be specified because of validator in form
    resp = "Team {} ".format(team_name)
    if is_team_unique(Team(team_name, team_username, team_password,
                           team_email)):
        return resp + "is not a valid team!"
    if (team_username == "X" and team_password == "X" and team_email == "X"
            and puzzle_name == "X"):
        db.delete_team(team_name)
        return resp + "deleted!"
    if team_username:
        db.update_username(team_name, team_username)
        resp += "username changed to {} ".format(team_username)
    if team_password:
        db.update_code(team_name, team_password)
        resp += " password changed to {} ".foramt(team_password)
    if team_email:
        db.update_email(team_name, team_email)
        resp += " email changed to {} ".format(team_email)
    if puzzle_name:
        db.update_team_solves(team_name,
                              Puzzle(puzzle_name, "").get_url_path())
        db.update_team_score(team_name)
        resp += " Puzzle {} updated to solved ".format(puzzle_name)
    return resp
Example #2
0
	def test_oneOnSevenSimpleTest(self):
		player1 = Player(1)
		player2 = Player(2)
		player3 = Player(3)
		player4 = Player(4)
		player5 = Player(5)
		player6 = Player(6)
		player7 = Player(7)
		player8 = Player(8)
	
		team1 = Team(player1, self.gameInfo.defaultRating)
		team2 = Team(player2, self.gameInfo.defaultRating)
		team2.addPlayer(player3, self.gameInfo.defaultRating)
		team2.addPlayer(player4, self.gameInfo.defaultRating)
		team2.addPlayer(player5, self.gameInfo.defaultRating)
		team2.addPlayer(player6, self.gameInfo.defaultRating)
		team2.addPlayer(player7, self.gameInfo.defaultRating)
		team2.addPlayer(player8, self.gameInfo.defaultRating)
		teams = [team1, team2]
	
		for newRating in self.calculator.calculateNewRatings(self.gameInfo, teams, [1, 2]):
			player = newRating[0]
			if player == player1:
				self.assertRating(40.582, 7.917, newRating[1])
			else:
				self.assertRating(9.418, 7.917, newRating[1])
		self.assertMatchQuality(0.000, self.calculator.calculateMatchQuality(self.gameInfo, teams))
Example #3
0
	def test_oneOnThreeDrawTest(self):
		player1 = Player(1)
		player2 = Player(2)
		player3 = Player(3)
		player4 = Player(4)
		team1 = Team(player1, self.gameInfo.defaultRating)
		team2 = Team(player2, self.gameInfo.defaultRating)
		team2.addPlayer(player3, self.gameInfo.defaultRating)
		team2.addPlayer(player4, self.gameInfo.defaultRating)
		teams = [team1, team2]
	
		newRatings = self.calculator.calculateNewRatings(self.gameInfo, teams, [1, 1])
	
		for newRating in newRatings:
			player = newRating[0]
			if player == player1:
				self.assertRating(34.990, 7.455, newRating[1])
			else:
				self.assertRating(15.010, 7.455, newRating[1])
		self.assertMatchQuality(0.012, self.calculator.calculateMatchQuality(self.gameInfo, teams))
Example #4
0
	def test_oneOnTwoDrawTest(self):
		player1 = Player(1)
		player2 = Player(2)
		player3 = Player(3)
		team1 = Team(player1, self.gameInfo.defaultRating)
		team2 = Team(player2, self.gameInfo.defaultRating)
		team2.addPlayer(player3, self.gameInfo.defaultRating)
		teams = [team1, team2]
	
		newRatings = self.calculator.calculateNewRatings(self.gameInfo, teams, [1, 1])
	
		for newRating in newRatings:
			player = newRating[0]
			if player == player1:
				self.assertRating(31.660, 7.138, newRating[1])
			elif player == player2:
				self.assertRating(18.340, 7.138, newRating[1])
			else:
				self.assertRating(18.340, 7.138, newRating[1])
		self.assertMatchQuality(0.135, self.calculator.calculateMatchQuality(self.gameInfo, teams))
Example #5
0
	def test_oneOnTwoSomewhatBalanced(self):
		player1 = Player(1)
		player2 = Player(2)
		player3 = Player(3)
	
		team1 = Team(player1, Rating(40, 6))
		team2 = Team(player2, Rating(20, 7))
		team2.addPlayer(player3, Rating(25, 8))
		teams = [team1, team2]
	
		newRatings = self.calculator.calculateNewRatings(self.gameInfo, teams, [1, 2])
	
		for newRating in newRatings:
			player = newRating[0]
			if player == player1:
				self.assertRating(42.744, 5.602, newRating[1])
			elif player == player2:
				self.assertRating(16.266, 6.359, newRating[1])
			else:
				self.assertRating(20.123, 7.028, newRating[1])
		self.assertMatchQuality(0.478, self.calculator.calculateMatchQuality(self.gameInfo, teams))
Example #6
0
	def test_oneOnTwoSimple(self):
		player1 = Player(1)
		player2 = Player(2)
		player3 = Player(3)
	
		team1 = Team(player1, self.gameInfo.defaultRating)
		team2 = Team()
		team2.addPlayer(player2, self.gameInfo.defaultRating)
		team2.addPlayer(player3, self.gameInfo.defaultRating)
		teams = [team1, team2]
	
		newRatings = self.calculator.calculateNewRatings(self.gameInfo, teams, [1, 2])
	
		for newRating in newRatings:
			player = newRating[0]
			if player == player1:
				self.assertRating(33.730, 7.317, newRating[1])
			elif player == player2:
				self.assertRating(16.270, 7.317, newRating[1])
			else:
				self.assertRating(16.270, 7.317, newRating[1])
		self.assertMatchQuality(0.135, self.calculator.calculateMatchQuality(self.gameInfo, teams))
Example #7
0
	def test_twoOnTwoDrawTest(self):
		player1 = Player(1)
		player2 = Player(2)
		player3 = Player(3)
		player4 = Player(4)
	
		team1 = Team(player1, self.gameInfo.defaultRating)
		team1.addPlayer(player2, self.gameInfo.defaultRating)
		team2 = Team(player3, self.gameInfo.defaultRating)
		team2.addPlayer(player4, self.gameInfo.defaultRating)
		teams = [team1, team2]
	
		for newRating in self.calculator.calculateNewRatings(self.gameInfo, teams, [1, 1]):
			self.assertRating(25, 7.455, newRating[1])
		self.assertMatchQuality(0.447, self.calculator.calculateMatchQuality(self.gameInfo, teams))
Example #8
0
	def test_oneOnOneMassiveUpsetDrawTest(self):
		player1 = Player(1)
		player2 = Player(2)
	
		team1 = Team()
		team1.addPlayer(player1, self.gameInfo.defaultRating)
		team2 = Team()
		team2.addPlayer(player2, Rating(50, 12.5))
		teams = [team1, team2]
	
		newRatingsWinLose = self.calculator.calculateNewRatings(self.gameInfo, teams, [1, 1])
	
		for newRating in newRatingsWinLose:
			player = newRating[0]
			if player == player1:
				self.assertRating(31.662, 7.137, newRating[1])
			else:
				self.assertRating(35.010, 7.910, newRating[1])
		self.assertMatchQuality(.110, self.calculator.calculateMatchQuality(self.gameInfo, teams))
Example #9
0
	def test_twoOnTwoSimpleTest(self):
		player1 = Player(1)
		player2 = Player(2)
		player3 = Player(3)
		player4 = Player(4)
	
		team1 = Team(player1, self.gameInfo.defaultRating)
		team1.addPlayer(player2, self.gameInfo.defaultRating)
		team2 = Team(player3, self.gameInfo.defaultRating)
		team2.addPlayer(player4, self.gameInfo.defaultRating)
		teams = [team1, team2]
	
		for newRating in self.calculator.calculateNewRatings(self.gameInfo, teams, [1, 2]):
			player = newRating[0]
			if player == player1 or player == player2:
				self.assertRating(28.108, 7.774, newRating[1])
			else:
				self.assertRating(21.892, 7.774, newRating[1])
		self.assertMatchQuality(0.447, self.calculator.calculateMatchQuality(self.gameInfo, teams))
Example #10
0
	def test_twoOnTwoUnbalancedDrawTest(self):
		player1 = Player(1)
		player2 = Player(2)
		player3 = Player(3)
		player4 = Player(4)
	
		team1 = Team(player1, Rating(15, 8))
		team1.addPlayer(player2, Rating(20, 6))
		team2 = Team(player3, Rating(25, 4))
		team2.addPlayer(player4, Rating(30, 3))
		teams = [team1, team2]
	
		for newRating in self.calculator.calculateNewRatings(self.gameInfo, teams, [1, 1]):
			player = newRating[0]
			if player == player1:
				self.assertRating(21.570, 6.556, newRating[1])
			elif player == player2:
				self.assertRating(23.696, 5.418, newRating[1])
			elif player == player3:
				self.assertRating(23.357, 3.833, newRating[1])
			else:
				self.assertRating(29.075, 2.931, newRating[1])
		self.assertMatchQuality(0.214, self.calculator.calculateMatchQuality(self.gameInfo, teams))
Example #11
0
def db_team_to_team(row):
    return Team(row[0], row[1], row[2], row[3])