def test_auto_summon(): q = queue.Queue() ec = events.EventClassifier() prompt.Prompt(ec) clerbot = cler.ClerBot(q, ec, u"Дарсу") init_group(clerbot, group_setup) for s, mode in group_headers: if mode == "NEAR": clerbot.mudfilter(s) break assert clerbot.mode() == "NEAR" for g_member in group1_near: clerbot.mudfilter(g_member) ec.mudfilter(p1) assert q.get_nowait().command() == u"cast призыв Алиант" ec.mudfilter("Вы произнесли магические слова 'призыв'...") ec.mudfilter("Алиант неожиданно появился.") ec.mudfilter(p1) assert q.get_nowait().command() == u"cast призыв Цушка" ec.mudfilter("Вы произнесли магические слова 'призыв'...") assert q.empty() return q, clerbot
def test_unstone(): q = queue.Queue() ec = events.EventClassifier() prompt.Prompt(ec) clerbot = cler.ClerBot(q, ec, u"Дарсу") init_group(clerbot, group_setup) for s, mode in group_headers: if mode == "HEALTH": clerbot.mudfilter(s) break assert clerbot.mode() == "HEALTH" clerbot.mudfilter(color2_test.replace("^[", chr(27))) ec.mudfilter(p1) assert q.get_nowait().command() == u"cast живое.прикосновение Шыгос" init_group(clerbot, stone_setup) for s, mode in group_headers: if mode == "HEALTH": clerbot.mudfilter(s) break assert clerbot.mode() == "HEALTH" for s in stone_test: clerbot.mudfilter(s.replace("^[", chr(27))) ec.mudfilter(p1) assert q.get_nowait().command() == u"cast живое.прикосновение Китаст"
def test_assist_battle_prompt_regexp(): p1 = u"320H 243M 174V 5MX 0C [Оланги:Великолепное]-[Дарсу:Жив] [рыжая белочка:Умирает] Вых:СЮЗ> " ec = events.EventClassifier() p = prompt.Prompt(ec) ec.mudfilter(p1) assert p.current() assert p.exits() == u"СЮЗ"
def test_add_event(): ec = events.EventClassifier() #a = utils.compile_regexp(u"r[^(?P<who>.+) произнес магические слова .$]") ev = utils.compile_regexp(u"r[^Вам лучше встать на ноги!]") ec.add_event("better_stand_up", ev) ec.add_callback("better_stand_up", AssertListener("better_stand_up")) ec.mudfilter("Вам лучше встать на ноги!") assert ec.current() == "better_stand_up"
def test_check(): q = queue.Queue() event_classifier = events.EventClassifier() prompt.Prompt(event_classifier) magebot = mage.MageBot(q, event_classifier, u"Эригон") init_group(event_classifier, group_setup) magebot.mudfilter(u"Вы произнесли магические слова 'гроза'...") assert q.get_nowait().command() == u"пгр поз ряд"
def test_following(): q = queue.Queue() event_classifier = events.EventClassifier() prompt.Prompt(event_classifier) magebot = mage.MageBot(q, event_classifier, u"Эригон") init_group(event_classifier, group_setup) magebot.mudfilter(u"Вы последовали за Дарсу.") assert q.get_nowait().command() == u"пгр поз ряд" return q, magebot
def test_frag_mod(): q = queue.Queue() event_classifier = events.EventClassifier() prompt.Prompt(event_classifier) group_mod = bot.GroupListMod(q, event_classifier, u"Эригон") mod = bot.FragMod(q, event_classifier, group_mod) init_group(event_classifier, group_setup) for s, mode in group_headers: event_classifier.mudfilter(s) if mode == "POSITION": assert mod.mode() event_classifier.mudfilter(p1) assert (mod.mode() == None)
def test_prompt_regexp(): p1 = u"876H 1009M 66V 51503MX 0C Вых:В>" nonp1 = "not prompt" nonp2 = u"MX 0C Вых:В>" ec = events.EventClassifier() p = prompt.Prompt(ec) ec.mudfilter(p1) assert p.current() assert p.exits() == u"В" ec.mudfilter(nonp1) assert not p.current() ec.mudfilter(nonp2) assert not p.current()
def test_cast(): q = queue.Queue() event_classifier = events.EventClassifier() prompt.Prompt(event_classifier) magebot = mage.MageBot(q, event_classifier, u"Эригон") init_group(event_classifier, group_setup) for s, mode in group_headers: if mode == "POSITION": event_classifier.mudfilter(s) break for g_member in group1_fight: event_classifier.mudfilter(g_member) event_classifier.mudfilter(p1) assert q.get_nowait().command() == u"cast гроза"
def test_rotation(): q = queue.Queue() event_classifier = events.EventClassifier() prompt.Prompt(event_classifier) magebot = mage.MageBot(q, event_classifier, u"Эригон") init_group(event_classifier, group_setup) advance_battle_round(event_classifier) assert q.get_nowait().command() == u"cast гроза" event_classifier.mudfilter(u"Вы произнесли магические слова 'гроза'...") assert q.get_nowait().command() == u"пгр поз ряд" advance_battle_round(event_classifier) assert q.get_nowait().command() == u"cast гроза" return q, magebot
def test_undrain(): q = queue.Queue() ec = events.EventClassifier() prompt.Prompt(ec) clerbot = cler.ClerBot(q, ec, u"Дарсу") init_group(ec, group_setup) for s, mode in group_headers: if mode == "HEALTH": clerbot.mudfilter(s) break assert clerbot.mode() == "HEALTH" for g_member in group1_health: clerbot.mudfilter(g_member) ec.mudfilter(p1) assert q.get_nowait().command() == u"cast слово.силы Шыгос"
def test_stand_up(monkeypatch): q = queue.Queue() event_classifier = events.EventClassifier() prompt.Prompt(event_classifier) group_mod = bot.GroupListMod(q, event_classifier, u"Эригон") mod = bot.FragMod(q, event_classifier, group_mod) def cmd(command, **kwargs): assert command == "stand" monkeypatch.setattr(exported, "lyntin_command", cmd) init_group(event_classifier, group_setup) for s, mode in group_headers: if mode == "POSITION": event_classifier.mudfilter(s) break for g_member in group1_stand: event_classifier.mudfilter(g_member) event_classifier.mudfilter(p1)
def test_builtin_events(): ec = events.EventClassifier() ec.mudfilter("Вы последовали за кем-то.") assert ec.current() == "you_followed" ec.mudfilter("Вы произнесли магические слова 'гроза'...") assert ec.current() == "you_casted" ec.mudfilter("Вы произнесли магические слова 'гроза' ( сила 310% )...") assert ec.current() == "you_casted" ec.mudfilter("Вы встали.") assert ec.current() == "you_stood_up" ec.mudfilter("Вы снова обрели способность разговаривать.") assert ec.current() == "you_unmute" ec.mudfilter("Черное безмолвие отступило от вас.") assert ec.current() == "you_unhardmute" ec.mudfilter("Вы снова можете двигаться.") assert ec.current() == "you_unhold"
def test_stand_up(monkeypatch): q = queue.Queue() ec = events.EventClassifier() prompt.Prompt(ec) clerbot = cler.ClerBot(q, ec, u"Дарсу") def cmd(command, **kwargs): assert command == "stand" monkeypatch.setattr(exported, "lyntin_command", cmd) init_group(clerbot, group_setup) for s, mode in group_headers: if mode == "HEALTH": clerbot.mudfilter(s) break assert clerbot.mode() == "HEALTH" for g_member in group1_stand: clerbot.mudfilter(g_member) ec.mudfilter(p1)
def test_gag(): ec = events.EventClassifier() ec.gag_current() assert ec.is_gagged()