示例#1
0
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"
示例#2
0
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
示例#3
0
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"
示例#4
0
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)
示例#5
0
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
示例#6
0
def test_1_lt_2(event):
    rule = model.Rule() + "1 < 2"
    assert model.Rule._match(rule._rule[0], event)
示例#7
0
def test_2_ne_2(event):
    rule = model.Rule() + "2 != 2"
    assert model.Rule._match(rule._rule[0], event) == False
示例#8
0
def test_1_eq_2(event):
    rule = model.Rule() + "1 == 2"
    assert model.Rule._match(rule._rule[0], event) == False
示例#9
0
def test_aa_eq_aa(event):
    rule = model.Rule() + "aa == aa"
    assert model.Rule._match(rule._rule[0], event)
示例#10
0
def test_1_eq_1(event):
    rule = model.Rule() + "1 == 1"
    assert model.Rule._match(rule._rule[0], event)
示例#11
0
def test_predicate_like_not_aa(event):
    rule = model.Rule() + "ba LIKE aa.*"
    assert model.Rule._match(rule._rule[0], event) == False
示例#12
0
def test_predicate_like_aa(event):
    event = EventData("", "", "", "")
    rule = model.Rule() + "aa LIKE aa.*"
    assert model.Rule._match(rule._rule[0], event)
示例#13
0
def test_2_ge_2(event):
    rule = model.Rule() + "2 >= 2"
    assert model.Rule._match(rule._rule[0], event)
示例#14
0
def test_2_gt_1(event):
    rule = model.Rule() + "2 > 1"
    assert model.Rule._match(rule._rule[0], event)
示例#15
0
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)
示例#16
0
def test_multiple_subrules():
    rule = model.Rule()
    rule += "1 == 1"
    rule += "1 == 2"
    assert len(rule._rule) == 2