def test_support(self, irc_msg): # Creating a Proposal irc_response = irc_msg("beginbot", "!propose !iasip The Gang Steals Kappa") result = CommandRouter(irc_response, logger).build_response() # Supporting a Proposal irc_response = irc_msg("bill.evans", "!support beginbot") result = CommandRouter(irc_response, logger).build_response() assert "@beginbot Thanks You for the support @bill.evans" in result
def test_bestcss(self, irc_msg): user = User("bill.evans") icon = User("miles.davis").save() irc_response = irc_msg("bill.evans", "!bestcss miles.davis") result = CommandRouter(irc_response, logger).build_response() assert CSSVote.count() == 1 assert ( result == "Thank You @bill.evans for supporting Artists like @miles.davis") irc_response = irc_msg("bill.evans", "!homepage") result = CommandRouter(irc_response, logger).build_response() assert result == "@miles.davis: 1"
def test_submitting_js(self, irc_msg): user = User("uzi") user.save() irc_response = irc_msg("uzi", "!js https://gitlab.com/snippets/1990806/raw") result = CommandRouter(irc_response, logger).build_response() assert result == "Thanks for the custom JS @uzi!"
def test_buying_insurance(self, irc_msg): user = User("uzi") user.update_cool_points(10) irc_response = irc_msg("uzi", "!insurance") result = CommandRouter(irc_response, logger).build_response() assert user.insured() assert result == "@uzi thank you for purchasing insurance"
async def run_bot(server: socket.socket) -> None: chat_buffer = "" while True: raw_irc_response = await chat_response(server) chat_buffer = chat_buffer + raw_irc_response messages = chat_buffer.split("\r\n") chat_buffer = messages.pop() for message in messages: if message == "PING :tmi.twitch.tv": await pong(server) elif len(message.split()) < 2: continue elif CHAT_MSG in message: try: if response := CommandRouter(message, logger).build_response(): MESSAGE_LIMIT = 500 if isinstance(response, List): for r in response: await send_msg(server, f"{r}") elif len(response) > MESSAGE_LIMIT: # This is dumb! await send_msg(server, f"{response[:500]}") await send_msg(server, f"{response[500:]}") else: await send_msg(server, f"{response}") except: print("\033[91m") traceback.print_exc() print("\033[0m")
async def run_bot(server: socket.socket) -> None: while True: irc_response = await chat_response(server) if irc_response[0] == ARE_YOU_ALIVE: await pong(server) elif len(irc_response) < 2: pass elif irc_response[1] == CHAT_MSG: try: if response := CommandRouter(irc_response, logger).build_response(): MESSAGE_LIMIT = 500 if isinstance(response, List): for r in response: await send_msg(server, f"{r}") elif len(response) > MESSAGE_LIMIT: # This is dumb! # await send_msg(server, f"{''.join(response[:500])}") await send_msg(server, f"{response[:500]}") await send_msg(server, f"{response[500:]}") else: await send_msg(server, f"{response}") except: print("\033[91m") traceback.print_exc() print("\033[0m")
def test_buying_a_non_existent_sound(self, irc_msg): user = "******" User(user).update_cool_points(10) message = "!buy gibberish" irc_response = irc_msg(user, message) result = CommandRouter(irc_response, logger).build_response() assert result == "@thugga purchase failed, command !gibberish not found"
def test_share_command(self, irc_msg): user = User("bill.evans") Command("damn").allow_user("bill.evans") irc_response = irc_msg("bill.evans", "!share damn") result = CommandRouter(irc_response, logger).build_response() assert ( "@bill.evans Not enough cool_points (0/1) to share !damn with @" in result)
def test_propose(self, irc_msg): irc_response = irc_msg("beginbot", "!propose !iasip The Gang Steals Kappa") result = CommandRouter(irc_response, logger).build_response() assert "Thank you @beginbot for your proposal" in result last_proposal = Proposal.last() assert last_proposal["proposal"] == "The Gang Steals Kappa" assert last_proposal["command"] == "iasip"
def test_buying_event(self, irc_msg): user = User("bill.evans") user.update_cool_points(10) irc_response = irc_msg("bill.evans", "!buy gcc") result = CommandRouter(irc_response, logger).build_response() last_event = UserEvent.last() assert last_event["user"] == "bill.evans" assert last_event["msg"] == "!buy gcc"
def test_top_8_features(self, irc_msg): user = User("bill.evans") miles = User("miles.davis") miles.save() irc_response = irc_msg("bill.evans", "!top8 miles.davis") result = CommandRouter(irc_response, logger).build_response() assert result == "@miles.davis is now in @bill.evans's Top 8!" assert user.top_eight() == ["miles.davis"]
def test_bot_survivor(self, irc_msg): user = User("uzi") user.save() User("uzibot").save() User.register_bot("uzibot", "don.cannon") irc_response = irc_msg("uzi", "!hatebot uzibot") result = CommandRouter(irc_response, logger).build_response() BotVote.count() == 1 assert result == "Thank you for your vote @uzi"
def test_transferring_a_command_already_owned(self, irc_msg): transferrer = User("thugga") transferee = User("wheezy") damn_command = Command("damn") damn_command.allow_user(transferee.name) message = "!transfer !damn @wheezy" irc_response = irc_msg(transferrer.name, message) result = CommandRouter(irc_response, logger).build_response() assert result == "@wheezy already has accesss to !damn @thugga"
def test_user_events(self, irc_msg): user = User("bill.evans") miles = User("miles.davis") miles.save() irc_response = irc_msg("bill.evans", "!top8 miles.davis") result = CommandRouter(irc_response, logger).build_response() last_event = UserEvent.last() assert last_event["user"] == "bill.evans" assert last_event["msg"] == "!top8 miles.davis" assert last_event[ "result"] == "@miles.davis is now in @bill.evans's Top 8!" assert last_event["command"] == "top8"
def test_share_command(self, irc_msg, monkeypatch): def _mock_random_user(self): return "miles.davis" monkeypatch.setattr("EconomyRouter", "_random_user", _mock_random_user) user = User("bill.evans") Command("damn").allow_user("bill.evans") irc_response = irc_msg("bill.evans", "!share damn") result = CommandRouter(irc_response, logger).build_response() assert ( "@bill.evans Not enough cool_points (0/1) to share !damn with @" in result)
from chat_thief.models.user_code import UserCode from chat_thief.data_scrubber import DataScrubber DEFAULT_MSG = "!add_perm ha johnnyutah" DEFAULT_MSG = "nice" def _fake_irc_msg_builder(user, msg): return [f":{user}!{user}@user.tmi.twitch.tv", "PRIVMSG", "#beginbot", f":{msg}"] if __name__ == "__main__": parser = ArgumentParser() parser.add_argument("--message", "-m", dest="message", default=DEFAULT_MSG) parser.add_argument("--user", "-u", dest="user", default="beginbotbot") parser.add_argument( "--breakpoint", "-b", dest="breakpoint", action="store_true", default=False ) args = parser.parse_args() irc_response = _fake_irc_msg_builder(args.user, args.message) if args.breakpoint: # found_command = Proposal.db().get(Query().name == name) # found_command = Proposal.db().search(Query().user == "beginbot") breakpoint() elif response := CommandRouter(irc_response, logger).build_response(): print(response) else: print("No Response")
def test_stealing_non_existent_sfx(self, irc_msg): User("bill.evans").update_cool_points(10) irc_response = irc_msg("bill.evans", "!steal fakesound") result = CommandRouter(irc_response, logger).build_response() assert result != "@bill.evans stole from @None"
def test_pokemon_game(self, irc_msg): irc_response = irc_msg("uzi", "!pokemon") result = CommandRouter(irc_response, logger).build_response() assert result == "Guess Which Pokemon This Is!!!"
def test_iasip(self, irc_msg): irc_response = irc_msg("beginbot", "!iasip The Gang Steals Kappa") CommandRouter(irc_response, logger).build_response() news = BreakingNews.last() assert news["scope"] == "The Gang Steals Kappa"