def test_masteries_contains_all_champions(): champions = cassiopeia.get_champions(region="NA") summoner = cassiopeia.get_summoner(name=SUMMONER_NAME, region="NA") champ_masteries = cassiopeia.get_champion_masteries(summoner=summoner.id, region="NA") for cm in champ_masteries: assert cm.champion in champions for champion in champions: assert champion in champ_masteries
def test_masteries_correct_type(): summoner = cassiopeia.get_summoner(name=SUMMONER_NAME, region="NA") champ_masteries = cassiopeia.get_champion_masteries(summoner=summoner.id, region="NA") assert isinstance(champ_masteries, SearchableList) assert all( isinstance(cm, cassiopeia.ChampionMastery) for cm in champ_masteries)
def test_masteries_contains_all_champions(): champions = cassiopeia.get_champions(region="NA") summoner = cassiopeia.get_summoner(name=SUMMONER_NAME, region="NA") champ_masteries = cassiopeia.get_champion_masteries(summoner=summoner.id, region="NA") for cm in champ_masteries: assert cm.champion in champions for champion in champions: assert champion in champ_masteries
def test_masteries_correct_type(): # TODO: Once get_champion_masteries works with passing a name, # replace this with get_champion_masteries(SUMMONER_NAME) summoner = cassiopeia.get_summoner(name=SUMMONER_NAME) champ_masteries = cassiopeia.get_champion_masteries(summoner.id) assert isinstance(champ_masteries, SearchableList) assert all( isinstance(cm, cassiopeia.ChampionMastery) for cm in champ_masteries)
def test_mastery_returns_correct_data(): summoner = cassiopeia.get_summoner(name=SUMMONER_NAME) masteries = cassiopeia.get_champion_masteries(summoner.id) on_champ = masteries[0] from_single_call = cassiopeia.get_champion_mastery(SUMMONER_NAME, on_champ.champion) #assert on_champ._data[cassiopeia.core.championmastery.ChampionMasteryData]._dto == from_single_call._data[cassiopeia.core.championmastery.ChampionMasteryData]._dto assert on_champ.points == from_single_call.points
def get_match_stats(matches, summoner, name_mapping): champions_played = {} # This call sucks, maybe we can avoid using mastery in the future cms = cass.get_champion_masteries(summoner=summoner, region=region) for match in matches: champion_id = match.participants[summoner].champion.id champion_name = name_mapping[champion_id] champion_mastery = ( cms.filter(lambda cm: cm.champion.name == champion_name))[0] if champion_mastery.level > 4: won = match.participants[summoner].team.win if won: won = 1 else: won = 0 if champion_name not in champions_played.keys(): champions_played[champion_name] = ChampionStat( won=won, mastery_level=champion_mastery.level, mastery_points=champion_mastery.points, win_rate=0) else: champions_played[champion_name].played += 1 champions_played[champion_name].won += won for champion in champions_played: champions_played[champion].win_rate = int( (champions_played[champion].won / champions_played[champion].played) * 100) # Sort by played, mastery points, then win rate sorted_champions = sorted( champions_played.items(), key=lambda x: (x[1].played, x[1].mastery_points, x[1].win_rate), reverse=True) return sorted_champions
def test_championmastery(): me = Summoner(name="Kalturi", id=21359666, region="NA") karma = Champion(name="Karma", id=43, region="NA") cm = ChampionMastery(champion=karma, summoner=me, region="NA") cm = cass.get_champion_mastery(champion=karma, summoner=me, region="NA") 'Champion ID:', cm.champion.id 'Mastery points:', cm.points 'Mastery Level:', cm.level 'Points until next level:', cm.points_until_next_level cms = cass.get_champion_masteries(summoner=me, region="NA") cms = me.champion_masteries cms[0].points cms["Karma"].points # Does a ton of calls without a cache "{} has mastery level 6 or higher on:".format(me.name) pro = cms.filter(lambda cm: cm.level >= 6) [cm.champion.name for cm in pro]
def test_championmastery(): me = Summoner(name="Kalturi", region="NA") karma = Champion(name="Karma", id=43, region="NA") cm = ChampionMastery(champion=karma, summoner=me, region="NA") cm = cass.get_champion_mastery(champion=karma, summoner=me, region="NA") 'Champion ID:', cm.champion.id 'Mastery points:', cm.points 'Mastery Level:', cm.level 'Points until next level:', cm.points_until_next_level cms = cass.get_champion_masteries(summoner=me, region="NA") cms = me.champion_masteries cms[0].points cms["Karma"].points # Does a ton of calls without a cache "{} has mastery level 6 or higher on:".format(me.name) pro = cms.filter(lambda cm: cm.level >= 6) [cm.champion.name for cm in pro]
def print_champion_mastery(): # Name: Kalturi # ID: 21359666 # Account ID: 34718348 me = Summoner(name="Kalturi", id=21359666) karma = Champion(name="Karma", id=43) #cm = ChampionMastery(champion=karma, summoner=me) cm = cass.get_champion_mastery(champion=karma, summoner=me) print('Champion ID:', cm.champion.id) print('Mastery points:', cm.points) print('Mastery Level:', cm.level) print('Points until next level:', cm.points_until_next_level) cms = cass.get_champion_masteries(summoner=me) cms = me.champion_masteries print(cms[0].points) # print(cms["Karma"].points) # Does a ton of calls without a cache print("{} has mastery level 6 or higher on:".format(me.name)) pro = cms.filter(lambda cm: cm.level >= 6) print([cm.champion.name for cm in pro])
def test_masteries_correct_type(): summoner = cassiopeia.get_summoner(name=SUMMONER_NAME, region="NA") champ_masteries = cassiopeia.get_champion_masteries(summoner=summoner.id, region="NA") assert isinstance(champ_masteries, SearchableList) assert all(isinstance(cm, cassiopeia.ChampionMastery) for cm in champ_masteries)
def test_returns_empty_list_with_unknown_summoner(): # TODO: Also do this with name, once it's implemented (see above) cm = cassiopeia.get_champion_masteries(123901923180391) assert cm == []