def get_group_winners(self, group): """ :param group: ``str`` the group letter to get winners of :return: ``tuple`` of winner and runner-up for the given group group stage works a bit different from all other stages, so this method gets the probable winners of the given ``group`` """ group_teams = Team.get_for_group(self.teams, group) probs_to_advance = [] for team in group_teams: prob_to_advance = team.probability_to_advance_from_group() probs_to_advance.append((team, prob_to_advance)) winners = [team for team, prob_to_advance in sorted(probs_to_advance, key=lambda x: x[1], reverse=True)][:2] return winners[0], winners[1]
def test_get_for_group(self): self.assertIn(Team.get_for_country(self.teams, 'Brazil'), Team.get_for_group(self.teams, 'A')) self.assertNotIn(Team.get_for_country(self.teams, 'Brazil'), Team.get_for_group(self.teams, 'B'))