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])
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]
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'
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}
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