def setUp(self): self.logPoint() self.test_player_goalie = PlayerGoalie("Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.none_value = None self.empty_value = ""
def _read_player_from_file(self): """ Private method to load the JSON player records from the file at _filepath into the list of players """ with open(self._filepath) as player_file: data = player_file.read() if (data== None) or (data == ""): return players_obj = json.loads(data) for key, value in players_obj.items(): if key.lower() == "forward": for i in value: player = PlayerForward(i['fname'], i['lname'], i['height'], i['weight'], i['jersey_num'], i['date_birth'], i['year_joined'], i['zone'], i['shooting_hand'], i['goals'], i['assists'], i['total_shots'], i['player_type']) player.set_id(i['id']) self._team_players.append(player) elif key.lower() == "goalie": for i in value: player = PlayerGoalie(i['fname'], i['lname'], i['height'], i['weight'], i['jersey_num'], i['date_birth'], i['year_joined'], i['shots_against'], i['goals_against'], i['goals_saved'], i['games_played'], i['games_won'], i['games_lost'], i['player_type']) player.set_id(i['id']) self._team_players.append(player) else: continue return
def setUp(self): self.logPoint() self.team = Team() self.forward = PlayerForward(47, "Sven", "Baertschi", 180.34, 190, 47, "Oct 5, 1992", "2011", "LW", "L", 8, 5, 40) self.goalie = PlayerGoalie(1, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13) self.undefined_value = None self.empty_value = ""
def update_player(player_id): """ Updates player's attributes """ content = request.json try: player_type = content["player_type"].lower() if player_type == PLAYER_TYPE_FORWARD: player = PlayerForward(content["fname"], content["lname"], content["height"], content["weight"], content["jersey_num"], content["date_birth"], content["year_joined"], content["zone"], content["shooting_hand"], content["goals"], content["assists"], content["total_shots"], content["player_type"]) player.set_id(player_id) team.update(player) response = app.response_class( status=200 ) elif player_type == PLAYER_TYPE_GOALIE: player = PlayerGoalie(content["fname"], content["lname"], content["height"], content["weight"], content["jersey_num"], content["date_birth"], content["year_joined"], content["shots_against"], content["goals_against"], content["goals_saved"], content["games_played"], content["games_won"], content["games_lost"], content["player_type"]) player.set_id(player_id) team.update(player) response = app.response_class( status=200 ) else: raise Exception except ValueError as e: response = app.response_class( status=404, response=str(e) ) return response
def setUp(self): """ Creates test fixture """ self.logPoint() json.load = MagicMock(return_value=TestTeam.TEST_PLAYERS) self.team = Team("testplayers.json") self.forward = PlayerForward("Sven", "Baertschi", 180.34, 190, 47, "Oct 5, 1992", "2011", "LW", "L", 8, 5, 40, "forward") self.forward_id = id(self.forward) (self.forward).set_id(self.forward_id) self.goalie = PlayerGoalie("Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "goalie") self.goalie_id = id(self.goalie) (self.goalie).set_id(self.goalie_id) self.undefined_value = None self.empty_value = ""
def add_player(): """ Adds a player to the team """ content = request.json try: player_type = content["player_type"].lower() if player_type == PLAYER_TYPE_FORWARD: player = PlayerForward(content["fname"], content["lname"], content["height"], content["weight"], content["jersey_num"], content["date_birth"], content["year_joined"], content["zone"], content["shooting_hand"], content["goals"], content["assists"], content["total_shots"], content["player_type"]) team.add(player) id = str(player.get_id()) response = app.response_class( status=200, response=id ) elif player_type == PLAYER_TYPE_GOALIE: player = PlayerGoalie(content["fname"], content["lname"], content["height"], content["weight"], content["jersey_num"], content["date_birth"], content["year_joined"], content["shots_against"], content["goals_against"], content["goals_saved"], content["games_played"], content["games_won"], content["games_lost"], content["player_type"]) team.add(player) id = str(player.get_id()) response = app.response_class( status=200, response=id ) else: raise Exception except: response = app.response_class( response="Player is invalid", status=400 ) return response
class TestPlayerGoalie(TestCase): """ Unit tests for PlayerGoalie class """ def setUp(self): self.logPoint() self.test_player_goalie = PlayerGoalie("Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.none_value = None self.empty_value = "" def test_player_goalie_valid(self): """ 010A: Valid values for constructor """ self.assertIsNotNone(self.test_player_goalie) def test_player_goalie_invalid_undefined(self): """ 010B: Invalid values for constructor """ self.assertRaisesRegex(ValueError, "fname cannot be undefined", PlayerGoalie, self.none_value, "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "lname cannot be undefined", PlayerGoalie, "Roberto", self.none_value, 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "height cannot be undefined", PlayerGoalie, "Roberto", "Luongo", self.none_value, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "weight cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, self.none_value, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "jersey_num cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, self.none_value, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "date_birth cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, self.none_value, 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "year_joined cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", self.none_value, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "shots_against cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, self.none_value, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "goals_against cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, self.none_value, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "goals_saved cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, self.none_value, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "games_played cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, self.none_value, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "games_won cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, self.none_value, 13, "Goalie") self.assertRaisesRegex(ValueError, "games_lost cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, self.none_value, "Goalie") self.assertRaisesRegex(ValueError, "player_type cannot be undefined", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, self.none_value) def test_player_goalie_invalid_empty(self): """ 010C: Empty values for constructor """ self.assertRaisesRegex(ValueError, "fname cannot be empty", PlayerGoalie, self.empty_value, "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "lname cannot be empty", PlayerGoalie, "Roberto", self.empty_value, 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "height cannot be empty", PlayerGoalie, "Roberto", "Luongo", self.empty_value, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "weight cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, self.empty_value, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "jersey_num cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, self.empty_value, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "date_birth cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, self.empty_value, 1997, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "year_joined cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", self.empty_value, 788, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "shots_against cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, self.empty_value, 83, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "goals_against cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, self.empty_value, 705, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "goals_saved cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, self.empty_value, 30, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "games_played cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, self.empty_value, 12, 13, "Goalie") self.assertRaisesRegex(ValueError, "games_won cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, self.empty_value, 13, "Goalie") self.assertRaisesRegex(ValueError, "games_lost cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, self.empty_value, "Goalie") self.assertRaisesRegex(ValueError, "player_type cannot be empty", PlayerGoalie, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13, self.empty_value) def test_get_shots_against_valid(self): """ 020A: Valid return for get_shots_against() """ self.assertEqual(self.test_player_goalie.get_shots_against(), 788) def test_get_goals_against_valid(self): """ 030A: Valid return for get_goals_against() """ self.assertEqual(self.test_player_goalie.get_goals_against(), 83) def test_get_goals_saved_valid(self): """ 040A: Valid return for get_goals_saved() """ self.assertEqual(self.test_player_goalie.get_goals_saved(), 705) def test_get_games_played(self): """ 050A: Valid return for get_games_played() """ self.assertEqual(self.test_player_goalie.get_games_played(), 30) def test_get_games_won(self): """ 060A: Valid return for get_games_won() """ self.assertEqual(self.test_player_goalie.get_games_won(), 12) def test_get_games_lost(self): """ 070A: Valid return for get_games_lost() """ self.assertEqual(self.test_player_goalie.get_games_lost(), 13) def test_get_win_loss_stats(self): """ 080A: Valid return for get_win_loss_stats() """ self.assertEqual(self.test_player_goalie.get_win_loss_stats(), [12, 13, 30]) def test_set_win_loss_stats(self): """ 090A: Valid modification of values """ self.test_player_goalie.set_win_loss_stats(13, 15, 33) self.assertEqual(self.test_player_goalie.get_win_loss_stats(), [13, 15, 33]) def test_get_stats(self): """ 100A: Valid return of get_stats() """ self.assertEqual(self.test_player_goalie.get_stats(), [788, 83, 705]) def test_get_type(self): """ 110A: Valid return of get_type() """ self.assertEqual(self.test_player_goalie.get_type(), "Goalie") def test_to_dict_valid(self): """ 120A: Valid to_dict() """ test_dict = self.test_player_goalie.to_dict() self.assertEquals(test_dict["fname"], "Roberto", "fname must be Roberto") self.assertEquals(test_dict["lname"], "Luongo", "lname must be Luongo") self.assertEquals(test_dict["height"], 190.5, "height must be 190.5") self.assertEquals(test_dict["weight"], 215, "weight must be 215") self.assertEquals(test_dict["jersey_num"], 1, "jersey_num must be 1") self.assertEquals(test_dict["date_birth"], "Apr 4, 1979", "date_birth must be Apr 4, 1979") self.assertEquals(test_dict["year_joined"], 1997, "year_joined must be 1997") self.assertEquals(test_dict["shots_against"], 788, "shots_against must be 788") self.assertEquals(test_dict["goals_against"], 83, "goals_against must be 83") self.assertEquals(test_dict["goals_saved"], 705, "goals saved must be 705") self.assertEquals(test_dict["games_played"], 30, "games_played must be 30") self.assertEquals(test_dict["games_won"], 12, "games_won must be 12") self.assertEquals(test_dict["games_lost"], 13, "games_lost must be 13") self.assertEquals(test_dict["player_type"], "Goalie", "player_type must be Goalie") def tearDown(self): self.logPoint() def logPoint(self): currentTest = self.id().split('.')[-1] callingFunction = inspect.stack()[1][3] print('in %s - %s()' % (currentTest, callingFunction))
from player_forward import PlayerForward from player_goalie import PlayerGoalie from team import Team import json import os player1 = PlayerForward("Sven", "Baertschi", 180.34, 190, 47, "Oct 5, 1992", "2011", "LW", "L", 8, 5, 40, "forward") player2 = PlayerForward("John", "Doe", 123, 23, 3, "Sept 2, 2534", "1234", "WN", "R", 3, 5, 65, "Forward") player3 = PlayerGoalie("Bob", "Smith", 321, 100, 4, "Jan 1, 1990", "2000", 123, 432, 40, 20, 20, 20, "goalie") team = Team("./players.json") #team.add(player1) #team.add(player2) #team.add(player3) #player3_id = player3.get_id() #print(id((team.get_all_players())[0])) # team.delete(id(player2)) #player_list = team.get_all_players() #player1 = player_list[0] #print(player1.to_dict()) #print(json.dumps((team.get_all_players())["2380120105032"], indent=4)) team.add(player1)
from team import Team from player_forward import PlayerForward from player_goalie import PlayerGoalie team_a = Team() forward = PlayerForward(47, "Sven", "Baertschi", 180.34, 190, 47, "Oct 5, 1992", "2011", "LW", "L", 8, 5, 40) goalie = PlayerGoalie(1, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13) forward_update = PlayerForward(47, "QUACK", "Baertschi", 180.34, 190, 47, "Oct 5, 1992", "2011", "LW", "L", 8, 5, 40) team_a.add(forward) team_a.add(goalie) team_a.update(forward_update) list_players = team_a.get_all_players() player_1 = list_players[0].get_fname() player_2 = list_players[1].get_fname() print(player_1) print(player_2)
class TestPlayerGoalie(TestCase): """ Unit tests for PlayerGoalie class """ def setUp(self): self.logPoint() self.test_player_goalie = PlayerGoalie(1, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13) def test_get_shots_against_valid(self): """ 010A: Valid return for get_shots_against() """ self.logPoint() self.assertEqual(self.test_player_goalie.get_shots_against(), 788) def test_get_goals_against_valid(self): """ 020A: Valid return for get_goals_against() """ self.logPoint() self.assertEqual(self.test_player_goalie.get_goals_against(), 83) def test_get_goals_saved_valid(self): """ 030A: Valid return for get_goals_saved() """ self.logPoint() self.assertEqual(self.test_player_goalie.get_goals_saved(), 705) def test_get_games_played(self): """ 040A: Valid return for get_games_played() """ self.logPoint() self.assertEqual(self.test_player_goalie.get_games_played(), 30) def test_get_games_won(self): """ 050A: Valid return for get_games_won() """ self.logPoint() self.assertEqual(self.test_player_goalie.get_games_won(), 12) def test_get_games_lost(self): """ 060A: Valid return for get_games_lost() """ self.logPoint() self.assertEqual(self.test_player_goalie.get_games_lost(), 13) def test_get_win_loss_stats(self): """ 070A: Valid return for get_win_loss_stats() """ self.logPoint() self.assertEqual(self.test_player_goalie.get_win_loss_stats(), [12, 13, 30]) def test_set_win_loss_stats(self): """ 080A: Valid modification of values """ self.logPoint() self.test_player_goalie.set_win_loss_stats(13, 15, 33) self.assertEqual(self.test_player_goalie.get_win_loss_stats(), [13, 15, 33]) def test_get_stats(self): """ 090A: Valid return of get_stats() """ self.logPoint() self.assertEqual(self.test_player_goalie.get_stats(), [788, 83, 705]) def test_get_type(self): """ 100A: Valid return of get_type() """ self.logPoint() self.assertEqual(self.test_player_goalie.get_type(), "Goalie") def tearDown(self): self.logPoint() def logPoint(self): currentTest = self.id().split('.')[-1] callingFunction = inspect.stack()[1][3] print('in %s - %s()' % (currentTest, callingFunction))
def setUp(self): self.logPoint() self.test_player_goalie = PlayerGoalie(1, "Roberto", "Luongo", 190.5, 215, 1, "Apr 4, 1979", 1997, 788, 83, 705, 30, 12, 13)