예제 #1
0
    def inviteAnswerReply(self, answer, members, inviter, invitee):
        from player import localPlayer
        from team import Team
        from player_manager import playerManager
        from team_manager import teamManager
        from draw_ import draw

        if localPlayer.name is invitee.name:
            newTeam = Team()
            newTeam.create(inviter)
            for member in members:
                newTeam.add(member)
            #更新玩家和team 数据 idea-->定义一个“更新”类,用@classmethod?
            invitee.team = newTeam
            inviter.team = newTeam
            playerManager.add(inviter)
            playerManager.add(invitee)
            teamManager.add(newTeam)
            #画出队伍成员
            draw.disDrawTeamMember()
            draw.drawTeamMember(newTeam)
        elif localPlayer.name is inviter.name:
            inviter.team = teamManager.get(inviter)
            inviter.team.add(invitee)
            #更新玩家和team 数据
            playerManager.add(inviter)
            teamManager.add(inviter.team)
            #画出队伍成员
            draw.disDrawTeamMember()
            draw.drawTeamMember(inviter.team)
        else:# 其他队员
            localPlayer.team.add(invitee)
            #更新玩家和team 数据
            playerManager.add(localPlayer)
            teamManager.add(localPlayer.team)
            #画出队伍成员
            draw.disDrawTeamMember()
            draw.drawTeamMember(localPlayer.team)
예제 #2
0
class TestTeam(TestCase):
    """ Unit Tests for the Team Class """

    TEST_PLAYERS = {"Forward": [], "Goalie": []}

    @patch('builtins.open', mock_open(read_data=""))
    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 test_team(self):
        """ 010A: Valid Construction """

        self.assertIsNotNone(self.team, "Team must be defined")

    @patch('builtins.open', mock_open(read_data=""))
    def test_add(self):
        """ 020A: Valid Add Player """

        self.assertIsNotNone(self.forward, "Player must be defined")

        returned_id = self.team.add(self.forward)
        self.assertEqual(returned_id, self.forward_id,
                         "Player must have id %s" % self.forward_id)
        self.assertEqual(len(self.team.get_all_players()), 1,
                         "Team must have 1 player")

    @patch('builtins.open', mock_open(read_data=""))
    def test_add_undefined(self):
        """ 020B: Invalid Add Player """

        undefined_player = None
        self.assertRaisesRegex(ValueError, "Player must be defined",
                               self.team.add, undefined_player)

    @patch('builtins.open', mock_open(read_data=""))
    def test_add_player_already_exists(self):
        """ 020C: Invalid Add Player - Player Already Exists """

        self.assertEqual(len(self.team.get_all_players()), 0,
                         "Team must have no players")

        self.team.add(self.forward)
        self.assertEqual(len(self.team.get_all_players()), 1,
                         "Team must have 1 player")

        self.team.add(self.forward)
        self.assertEqual(len(self.team.get_all_players()), 1,
                         "Team must still only have 1 player")

    @patch('builtins.open', mock_open(read_data=""))
    def test_delete(self):
        """ 030A: Valid Delete Player """

        self.team.add(self.forward)

        player_list = self.team.get_all_players()

        self.assertEqual(len(player_list), 1, "Team must have 1 player")
        self.assertEqual(player_list[0].get_id(), self.forward_id)

        self.team.delete(self.forward_id)
        self.assertEqual(len(self.team.get_all_players()), 0,
                         "Team must have no players")

    @patch('builtins.open', mock_open(read_data=""))
    def test_delete_invalid_player_id(self):
        """ 030B: Invalid Delete Player Parameters """

        self.assertRaisesRegex(ValueError, "Player ID cannot be undefined",
                               self.team.delete, self.undefined_value)
        self.assertRaisesRegex(ValueError, "Player ID cannot be empty",
                               self.team.delete, self.empty_value)

    @patch('builtins.open', mock_open(read_data=""))
    def test_delete_non_existent_player(self):
        """ 030C: Invalid Delete Player - Player is Non-Existent """

        self.team.add(self.forward)

        player_list = self.team.get_all_players()

        self.assertEqual(len(player_list), 1, "Team must have 1 player")
        self.assertEqual(player_list[0].get_id(), self.forward_id)

        self.assertRaisesRegex(ValueError, "Player ID does not exist",
                               self.team.delete, self.goalie_id)
        self.assertEqual(len(self.team.get_all_players()), 1,
                         "Team must have 1 player")

    @patch('builtins.open', mock_open(read_data=""))
    def test_get_player(self):
        """ 040A: Valid Get Player """

        self.team.add(self.forward)

        retrieved_player = self.team.get_player(self.forward_id)
        self.assertEqual(retrieved_player.get_id(), self.forward_id,
                         "Player must have player ID %s" % (self.forward_id))
        self.assertEqual(retrieved_player.get_zone(), "LW",
                         "Player must have zone LW")
        self.assertEqual(retrieved_player.get_stats(), [8, 5, 40],
                         "Player must have stats [8, 5, 40]")

    @patch('builtins.open', mock_open(read_data=""))
    def test_get_player_invalid_player_id(self):
        """ 040B: Invalid Get Player Parameters """

        self.assertRaisesRegex(ValueError, "Player ID cannot be undefined",
                               self.team.get_player, self.undefined_value)
        self.assertRaisesRegex(ValueError, "Player ID cannot be empty",
                               self.team.get_player, self.empty_value)

    @patch('builtins.open', mock_open(read_data=""))
    def test_get_player_non_existent(self):
        """ 040C: Invalid Get Player - Player is Non-Existent"""

        self.team.add(self.forward)
        self.team.add(self.goalie)

        self.assertIsNone(self.team.get_player(99),
                          "No player should exist for 99")

    @patch('builtins.open', mock_open(read_data=""))
    def test_get_all_players(self):
        """ 050A: Valid get_all_players() """

        self.team.add(self.forward)
        self.team.add(self.goalie)

        list_players = self.team.get_all_players()

        self.assertEqual(len(list_players), 2)
        self.assertEqual(list_players[0].get_fname(), "Sven",
                         "Player must have first name 'Sven'")
        self.assertEqual(list_players[1].get_id(), self.goalie_id,
                         "Player must have id %s" % self.goalie_id)

    @patch('builtins.open', mock_open(read_data=""))
    def test_get_all_players_invalid(self):
        """ 050B: Invalid get_all_players() """

        list_players = self.team.get_all_players()

        # Check empty list
        self.assertEqual(len(list_players), 0, "Team must have no players")

        self.team.add(self.forward)
        list_players = self.team.get_all_players()

        self.assertIsNotNone(list_players[0], "Player must be defined")

    @patch('builtins.open', mock_open(read_data=""))
    def test_get_all_by_type(self):
        """ 060A: Valid Get all by Type """

        self.team.add(self.forward)
        self.team.add(self.goalie)

        list_players_forward = self.team.get_all_by_type("Forward")
        list_players_goalie = self.team.get_all_by_type("Goalie")

        self.assertEqual(len(list_players_forward), 1)
        self.assertEqual(list_players_forward[0].get_type(), "Forward",
                         "Player must have Player Type Forward")

        self.assertEqual(len(list_players_goalie), 1)
        self.assertEqual(list_players_goalie[0].get_type(), "Goalie",
                         "Player must have Player Type Goalie")

    def test_get_all_by_type_invalid_player_type(self):
        """ 060B: Invalid Get all by Type Parameters """

        self.assertRaisesRegex(ValueError, "Player Type cannot be undefined",
                               self.team.get_all_by_type, self.undefined_value)
        self.assertRaisesRegex(ValueError, "Player Type cannot be empty",
                               self.team.get_all_by_type, self.empty_value)
        self.assertRaisesRegex(ValueError,
                               "Player Type must be Forward or Goalie",
                               self.team.get_all_by_type, "Defense")

    @patch('builtins.open', mock_open(read_data=""))
    def test_update(self):
        """ 070A: Valid Update """

        self.team.add(self.forward)
        self.team.add(self.goalie)

        new_forward = PlayerForward("Yann", "Sauve", 190.5, 207.24, 47,
                                    "Feb 18, 1990", "2008", "RW", "L", 12, 8,
                                    43, "forward")
        new_forward.set_id(self.forward_id)

        self.team.update(new_forward)

        self.assertEqual(
            self.team.get_player(self.forward_id).get_full_name(),
            "Yann Sauve")

    def tearDown(self):
        self.logPoint()

    def logPoint(self):
        currentTest = self.id().split('.')[-1]
        callingFunction = inspect.stack()[1][3]
        print('in %s - %s()' % (currentTest, callingFunction))
예제 #3
0
class TestTeam(unittest.TestCase):
    def setUp(self):
        self.team = Team(2)

    def test_add(self):
        self.team.add("Player")
        self.assertIn("Player", self.team)

    def test_multiple_add(self):
        self.team.add("Player1", "Player2")
        self.assertTrue("Player1" in self.team and "Player2" in self.team,
                        msg=str(self.team.get_players()))

    def test_duplicate_add(self):
        self.team.add("Player")
        self.assertRaises(AssertionError, self.team.add, "Player")

    def test_team_max(self):
        self.team.add("1")
        self.team.add("2")
        self.assertRaises(AssertionError, self.team.add, "3")

    def test_remove(self):
        self.team.add("Player")
        self.team.remove("Player")
        self.assertNotIn("Player", self.team)

    def test_remove_nonexisting(self):
        self.assertRaises(ValueError, self.team.remove, "Player")

    def test_get_players(self):
        self.team.add("Player")
        something = self.team.get_players()
        self.assertEqual(something, self.team.players)

    def test_iterable(self):
        y = iter(self.team)
        players = iter(self.team.players)

        compared_players = (x1 == x2 for x1, x2 in zip(y, players))
        self.assertTrue(all(compared_players))

    def test_iterable_realcase(self):
        self.team.add("Player1")
        self.team.add("Player2")
        found = False
        for player in self.team:
            if player == "Player2":
                found = True
        self.assertTrue(found)

    def test_clear(self):
        self.team.add("Player1")
        self.team.add("Player2")
        self.team.clear()
        self.team == None

    def test_bool(self):
        self.team.add("Player1")
        self.team.add("Player2")
        self.assertTrue(self.team)
예제 #4
0
from user import User
from team import Team

if __name__ == '__main__':
    # create and print a default Team
    team = Team()
    print(team)
    # add users
    team.add(User("Cam"))
    team.add(User("Pam"))
    # make one user different
    team.get("Pam").score += 1
    print(team)
    # test get with existing user
    print(team.get("Pam"))
    # test get with missing user
    print(team.get("Sam"))
    # test get_leader
    print(team.get_leader())
예제 #5
0
                       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)

print(team)

#team.delete(2101412049304)

#print(repr(team))

#forwards = team.get_all_by_type("Forward")

#print(forwards)
예제 #6
0
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)