def test_invalid_path(): with open("tests/sample_players.json") as f: players = [Player(**p) for p in json.load(f)] with open("tests/sample_championkill.json") as f: event = EventChampionKill(Players=players, **json.load(f)) rule = (model.Rule() + "TurretKilled == asdf") assert model.Rule._match(rule._rule[0], event) == False
def event_players(): with open("tests/sample_players.json") as f: players = [Player(**p) for p in json.load(f)] return EventIdle(Players=players, EventID=0, EventName="EventIdle", EventTime=0.0)
def test_players_eq(): with open("tests/sample_players.json") as f: players = [Player(**p) for p in json.load(f)] with open("tests/sample_championkill.json") as f: event = EventChampionKill(Players=players, **json.load(f)) assert "Annie" in Expression("Players.championName").resolve(event) assert "Winner" in Expression("Players.summonerName").resolve(event) assert "asdf" not in Expression("Players.summonerName").resolve(event)
def test_compare_list(): with open("tests/sample_players.json") as f: players = [Player(**p) for p in json.load(f)] for p in [p for p in players if p.team == "ORDER"]: p.isDead = True event = EventData(players, "", "", "") rule = (model.Rule() + "Order.isDead == [true,true,true,true,true]") assert model.Rule._match(rule._rule[0], event) == True rule = (model.Rule() + "Order.isDead == [false,true,true,true,true]") assert model.Rule._match(rule._rule[0], event) == False
def fetch_playerlist(self) -> List[Player]: try: response = requests.get("https://" + self.host + ":2999/liveclientdata/playerlist", verify=False) playerlist = response.json() except requests.exceptions.ConnectionError as exc: # raise Exception(f"Failed requesting playerlist: {exc}") print(f"Failed requesting players list {exc}") return [] except TypeError as exc: raise Exception(f"Failed requesting playerlist: {exc}") return [Player(**p) for p in playerlist]
def test_players_max_kills(): with open("tests/sample_players.json") as f: players = [Player(**p) for p in json.load(f)] event = EventData(players, "", "", "") assert Expression("MAX(Players.scores.kills).scores.kills").resolve( event) == 3
def test_players_count_4(): with open("tests/sample_players.json") as f: players = [Player(**p) for p in json.load(f)] with open("tests/sample_championkill_2.json") as f: event = EventChampionKill(Players=players, **json.load(f)) assert Expression("COUNT(Assisters)").resolve(event) == 4
def players(): with open("tests/sample_players.json") as f: players = [Player(**p) for p in json.load(f)] return players