def test_joinGameCorrectlyAddsUserIntoGame(self): file = open('gunid', 'r+') file.truncate() file.write( "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=3\nusername=Benjamin\n" ) file.close() gun = Gun() gun.readIDFile() mydb = connect.connect() cursor = mydb.cursor() sql = "INSERT INTO Games (current_state, winner, game_date) VALUES (1, 0, (NOW() - INTERVAL 4 HOUR + INTERVAL 11 MINUTE - INTERVAL 22 SECOND))" cursor.execute(sql) mydb.commit() gun.joinGame() sql = "SELECT * FROM (Games INNER JOIN Game_Users ON Games.id = Game_Users.game_id) WHERE Games.current_state = 1" cursor.execute(sql) myresult = cursor.fetchall() self.assertEqual(len(myresult), 1) #only one row added to database self.assertEqual(myresult[0][5], 3) #gunid is 3 self.assertEqual(myresult[0][6], "Benjamin") #username is Benjamin sql = "UPDATE Games SET current_state=0 WHERE current_state=1" cursor.execute(sql) mydb.commit() mydb.close()
def test_loseGameReturnsTrueWhenThereIsAnOpponentInGame(self): file = open('gunid', 'r+') file.truncate() file.write( "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=3\nusername=Benjamin\n" ) file.close() gun = Gun() gun.readIDFile() file = open('gunid', 'r+') file.truncate() file.write( "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=4\nusername=Thomas\n" ) file.close() gun2 = Gun() gun2.readIDFile() mydb = connect.connect() cursor = mydb.cursor() sql = "INSERT INTO Games (current_state, winner, game_date) VALUES (2, 0, (NOW() - INTERVAL 4 HOUR + INTERVAL 11 MINUTE - INTERVAL 22 SECOND))" cursor.execute(sql) mydb.commit() gun.joinGame() gun2.joinGame() self.assertTrue(gun2.loseGame()) mydb.close()
def test_loseGameCorrectlyUpdatesWinnerStats(self): file = open('gunid', 'r+') file.truncate() file.write( "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=3\nusername=Benjamin\n" ) file.close() gun = Gun() gun.readIDFile() file = open('gunid', 'r+') file.truncate() file.write( "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=4\nusername=Thomas\n" ) file.close() gun2 = Gun() gun2.readIDFile() mydb = connect.connect() cursor = mydb.cursor() sql = "INSERT INTO Games (current_state, winner, game_date) VALUES (2, 0, (NOW() - INTERVAL 4 HOUR + INTERVAL 11 MINUTE - INTERVAL 22 SECOND))" cursor.execute(sql) mydb.commit() sql = "SELECT * FROM Guns WHERE gun=3" cursor.execute(sql) myresult = cursor.fetchall() oldGunWins = myresult[0][1] sql = "SELECT * FROM Players WHERE username='******'" cursor.execute(sql) myresult = cursor.fetchall() oldPlayerWins = myresult[0][1] gun.joinGame() gun2.joinGame() gun2.loseGame() sql = "SELECT * FROM Guns WHERE gun=3" cursor.execute(sql) myresult = cursor.fetchall() newGunWins = myresult[0][1] sql = "SELECT * FROM Players WHERE username='******'" cursor.execute(sql) myresult = cursor.fetchall() newPlayerWins = myresult[0][1] self.assertEqual((oldGunWins + 1), newGunWins) self.assertEqual((oldPlayerWins + 1), newPlayerWins) mydb.close()
def test_joinGameReturnsFalseWhenThereIsNoActiveGame(self): file = open('gunid', 'r+') file.truncate() file.write( "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=3\nusername=Benjamin\n" ) file.close() gun = Gun() gun.readIDFile() self.assertFalse(gun.joinGame())
#prog defined in ~/.lircrc prog = "guns" try: sockid = lirc.init(prog, blocking=False) trigger = Trigger() trigger.addTrigger() gun = Gun() led = LED() hp = 3 if (not gun.readIDFile()): quit() inGame = False while True: while not inGame: joined = gun.joinGame() if joined: inGame = True hp = 3 led.toggleLED('red') sleep(0.5) while inGame: if hp == 3: led.toggleLED('green') led.setLED('red', 'off') elif hp == 2: led.toggleLED('green') led.setLED('red', 'on') else: led.toggleLED('green') led.toggleLED('red')