Beispiel #1
0
    def test_shutdown_game(self):
        """
        shutdown_game should put the list active_players on game_info['kills']
        should also clear the list active_players
        should add one to the count of current_game
        should call print_game()
        """
        intersection = [{'Fulano': 56}, {'Deltrano': 1}, {'Jack': 0}]
        active_players_mock = {
            '2': ['Fulano', 56],
            '6': ['Deltrano', 1],
            '12': ['Jack', 0]
        }
        kills_mock = [{'Player1': 3}, {'Player2': 987}]

        parser = Parser()

        with mock.patch('core.Parser.print_game') as mockFunc:
            parser.active_players = active_players_mock
            parser.game_info['kills'] = kills_mock
            parser.current_game = 11
            parser.shutdown_game()

            assert parser.current_game == 12
            mockFunc.assert_called_once_with()
            self.assertDictEqual(parser.game_info['kills'][2], intersection[0])
            self.assertDictEqual(parser.game_info['kills'][3], intersection[1])
            self.assertDictEqual(parser.game_info['kills'][4], intersection[2])
Beispiel #2
0
    def test_userinfo_changed(self):
        """
        userinfo_changed should update the list of active players
        """
        active_players_mock = {
            '2': ['Fulano', 5],
            '6': ['Deltrano', 1],
            '12': ['Jack', 0]
        }

        game_info_players = ['Fulano', 'Deltrano', 'Jack']

        parser = Parser()

        parser.active_players = active_players_mock
        parser.game_info['players'] = game_info_players

        parser.userinfo_changed('4 n\\New Player\\whatever')
        assert parser.active_players['4'] == ['New Player', 0]
Beispiel #3
0
    def test_client_begin(self):
        """
        client_begin should pass the confirmed active player to the list of players
        """
        active_players_mock = {
            '2': ['New Player', 0],
            '6': ['Deltrano', 1],
            '12': ['Jack', 0]
        }

        game_info_players = ['Fulano', 'Deltrano', 'Jack']

        parser = Parser()

        parser.active_players = active_players_mock
        parser.game_info['players'] = game_info_players

        parser.client_begin('2')
        assert parser.game_info['players'][3] == 'New Player'
Beispiel #4
0
    def test_client_disconnect(self):
        """
        client_disconnect should pass the info from active_players to game_info['kills'] from the DC player
        """
        kills_mock = [{'Player1': 3}, {'Player2': 987}]
        active_players_mock = {
            '2': ['New Player', 67],
            '6': ['Deltrano', 1],
            '12': ['Jack', 0]
        }

        parser = Parser()

        parser.game_info['kills'] = kills_mock
        parser.active_players = active_players_mock

        parser.client_disconnect('6')

        if '6' in parser.active_players:
            assert False
        else:
            assert True
        assert parser.game_info['kills'][2] == {'Deltrano': 1}
Beispiel #5
0
    def test_score_kill(self):
        """
        score_kill should give points to the player that killed
        should take out one point if the player died from <world>
        should increase the count of total kills
        should increase the kill count of that death cause
        """
        death_causes = [{
            'death_cause': 0
        }, {
            'death_cause': 0
        }, {
            'death_cause': 0
        }]

        active_players_mock = {
            '2': ['Fulano', 5],
            '6': ['Deltrano', 1],
            '12': ['Jack', 0]
        }

        parser = Parser()
        parser.death_causes = death_causes
        parser.active_players = active_players_mock
        parser.game_info['total_kills'] = 6

        # World kill
        parser.score_kill('1022 2 0: something something')
        assert parser.game_info['total_kills'] == 7
        assert parser.active_players['2'][1] == 4
        assert parser.death_causes[0]['death_cause'] == 1

        # Player kill
        parser.score_kill('6 12 2: something something')
        assert parser.game_info['total_kills'] == 8
        assert parser.active_players['6'][1] == 2
        assert parser.death_causes[2]['death_cause'] == 1