def test_value_in_event(players): rules = model.Rules() rule = model.Rule() + "assister_a IN Assisters.summonerName" rules += (rule, "ok") rule = model.Rule() + "Winner IN Assisters.summonerName" rules += (rule, "ko") event = events.EventChampionKill(players, "", 0, 0.0, "Looser", "Winner", ["assister_a", "assister_b"]) res = rules.match(event) assert res == "ok"
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 test_match_2_rules(players): rules = model.Rules() rule = model.Rule() + "KillerName == Winner" rules += (rule, "ok") rule = model.Rule() + "KillerName == Looser" rules += (rule, "ko") event = events.EventChampionKill(players, "", 0, 0.0, "Looser", "Winner", []) res = rules.match(event) assert res == "ok"
def test_predicate_in(event): rule = model.Rule() + "1 IN [1,2,3]" assert model.Rule._match(rule._rule[0], event) rule = model.Rule() + "1 IN [1 , 2 , 3]" assert model.Rule._match(rule._rule[0], event) rule = model.Rule() + 'Annie IN ["Annie" , "asdf" , "sdfg"]' assert model.Rule._match(rule._rule[0], event) rule = model.Rule() + 'Ann ie IN ["Ann ie" , "asdf" , "sdfg"]' assert model.Rule._match(rule._rule[0], event)
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 test_1_lt_2(event): rule = model.Rule() + "1 < 2" assert model.Rule._match(rule._rule[0], event)
def test_2_ne_2(event): rule = model.Rule() + "2 != 2" assert model.Rule._match(rule._rule[0], event) == False
def test_1_eq_2(event): rule = model.Rule() + "1 == 2" assert model.Rule._match(rule._rule[0], event) == False
def test_aa_eq_aa(event): rule = model.Rule() + "aa == aa" assert model.Rule._match(rule._rule[0], event)
def test_1_eq_1(event): rule = model.Rule() + "1 == 1" assert model.Rule._match(rule._rule[0], event)
def test_predicate_like_not_aa(event): rule = model.Rule() + "ba LIKE aa.*" assert model.Rule._match(rule._rule[0], event) == False
def test_predicate_like_aa(event): event = EventData("", "", "", "") rule = model.Rule() + "aa LIKE aa.*" assert model.Rule._match(rule._rule[0], event)
def test_2_ge_2(event): rule = model.Rule() + "2 >= 2" assert model.Rule._match(rule._rule[0], event)
def test_2_gt_1(event): rule = model.Rule() + "2 > 1" assert model.Rule._match(rule._rule[0], event)
def test_champion_in_players(players): rule = model.Rule() + 'Annie IN Players.championName' event = events.EventChampionKill(players, "", 0, 0.0, "Looser", "Winner", ["assister_a", "assister_b"]) assert model.Rule._match(rule._rule[0], event)
def test_multiple_subrules(): rule = model.Rule() rule += "1 == 1" rule += "1 == 2" assert len(rule._rule) == 2