def addPlayer(postVars):
	
	global couchdbServer
	
	templateVars = dict(saved = False)
	try:
		templateVars["name"] = postVars["playerName"].value.decode("utf-8")
		templateVars["birth"] = postVars["playerBirth"].value.decode("utf-8")
		templateVars["nickname"] = postVars["playerNickname"].value.decode("utf-8")
		
		tempImagePath = "/tmp/%s" % postVars["playerPhoto"].filename
		tempImageFile = open(tempImagePath ,"w")
		tempImageFile.write(postVars["playerPhoto"].value)
		tempImageFile.close();
		
		try:
			db = couchdbServer.create("players")
		except:
			db = couchdbServer["players"]
		
		player = Player()
		player.setName(templateVars["name"])
		player.birth = templateVars["birth"]
		player.nickname = templateVars["nickname"]
		player.setPhoto(tempImagePath)
		player.store(db)
		
		templateVars["saved"] = True
		
	except KeyError:
		name = u"undef"
		
	return output_template("addPlayer.html", templateVars)
	def testSnapshots(self):

		server = Server()
		try:
			db = server.create("players")
		except:
			db = server["players"]

		bolivar = Player()
		bolivar.setName("Bolivar")
		bolivar.setPhoto("images/bolivar.jpg")
		bolivar.setKarma(288)
		bolivar.store(db)

		indio = Player()
		indio.setName("Indio")
		indio.setPhoto("images/indio.jpg")
		indio.setKarma(388)
		indio.store(db)

		ss = Snapshot()
		ss.description = "Teste de snapshot"
		self.assertEqual(ss.takeSnapshot(), True), "Error taking snapshot"

		try:
			server.delete("snapshots")
		except:
			pass

		try:
			db = server.create("snapshots")
		except:
			db = server["snapshots"]

		ss.store(db)

		ss = Snapshot.load(db,ss.id)
		server.delete(ss.name)
		server.delete("snapshots")
	def testPlayerDb(self):

		server = Server()
		try:
			db = server.create("players")
		except:
			db = server["players"]

		bolivar = Player()
		bolivar.setName("Bolivar")
		bolivar.setPhoto("images/bolivar.jpg")
		bolivar.store(db)

		indio = Player()
		indio.setName("Indio")
		indio.setPhoto("images/indio.jpg")
		indio.store(db)
		
		nei = Player()
		nei.setName("Nei")
		nei.setPhoto("images/nei.jpg")
		nei.store(db)

		server.delete("players")
	def testMatchesResults(self):

		server = Server()
		try:
			db = server.create("players")
		except:
			db = server["players"]

		player0 = Player()
		player0.store(db)
		player1 = Player()
		player1.store(db)
		
		match = Match()

		match.matchWithWinner(player0, player1)
		self.assertEqual(player0.karma, 405), "Error on match"
		self.assertEqual(player0.matches, 1), "Error on match"
		self.assertEqual(player0.wins, 1), "Error on match"
		self.assertEqual(player0.losses, 0), "Error on match"
		self.assertEqual(player1.karma, 395), "Error on match"
		self.assertEqual(player1.matches, 1), "Error on match"
		self.assertEqual(player1.wins, 0), "Error on match"
		self.assertEqual(player1.losses, 1), "Error on match"
		
		match.matchWithWinner(player1, player0)
		self.assertEqual(player0.karma, 400), "Error on match"
		self.assertEqual(player0.matches, 2), "Error on match"
		self.assertEqual(player0.wins, 1), "Error on match"
		self.assertEqual(player0.losses, 1), "Error on match"
		self.assertEqual(player1.karma, 400), "Error on match"
		self.assertEqual(player1.matches, 2), "Error on match"
		self.assertEqual(player1.wins, 1), "Error on match"
		self.assertEqual(player1.losses, 1), "Error on match"

		match.matchWithWinner(player0, player1)
		self.assertEqual(player0.karma, 405), "Error on match"
		self.assertEqual(player0.matches, 3), "Error on match"
		self.assertEqual(player1.karma, 395), "Error on match"
		self.assertEqual(player1.matches, 3), "Error on match"

		match.matchWithWinner(player0,player1)
		self.assertEqual(player0.karma, 410), "Error on match"
		self.assertEqual(player0.matches, 4), "Error on match"
		self.assertEqual(player1.karma, 390), "Error on match"
		self.assertEqual(player1.matches, 4), "Error on match"

		match.matchWithWinner(player0, player1)
		self.assertEqual(player0.karma, 415), "Error on match"
		self.assertEqual(player0.matches, 5), "Error on match"
		self.assertEqual(player1.karma, 385), "Error on match"
		self.assertEqual(player1.matches, 5), "Error on match"

		match.matchWithWinner(player0, player1)
		self.assertEqual(player0.karma, 419.7), "Error on match"
		self.assertEqual(player0.matches, 6), "Error on match"
		self.assertEqual(player1.karma, 380.3), "Error on match"
		self.assertEqual(player1.matches, 6), "Error on match"

		player0.resetKarma()
		player1.resetKarma()
		match.matchWithoutWinner(player0, player1)
		self.assertEqual(player0.karma, 400), "Error on match"
		self.assertEqual(player0.matches, 1), "Error on match"
		self.assertEqual(player1.karma, 400), "Error on match"
		self.assertEqual(player1.matches, 1), "Error on match"
		self.assertEqual(player1.wins, 0), "Error on match"
		self.assertEqual(player1.losses, 0), "Error on match"

		match.matchWithWinner(player0, player1)
		self.assertEqual(player0.karma, 405), "Error on match"
		self.assertEqual(player0.matches, 2), "Error on match"
		self.assertEqual(player1.karma, 395), "Error on match"
		self.assertEqual(player1.matches, 2), "Error on match"
		
		match.matchWithoutWinner(player0, player1)
		self.assertEqual(player0.karma, 405), "Error on match"
		self.assertEqual(player0.matches, 3), "Error on match"
		self.assertEqual(player1.karma, 395), "Error on match"
		self.assertEqual(player1.matches, 3), "Error on match"

		match.matchWithoutWinner(player0, player1)
		self.assertEqual(player0.karma, 405), "Error on match"
		self.assertEqual(player0.matches, 4), "Error on match"
		self.assertEqual(player1.karma, 395), "Error on match"
		self.assertEqual(player1.matches, 4), "Error on match"