def test_kill_input(): good_kill_msg = {"text": "!kill nick", "user": "******"} no_target_msg = {"text": "!kill", "user": "******"} too_many_targets_msg = {"text": "!kill you me and this", "user": "******"} invalid_target_msg = {"text": "!kill yolo", "user": "******"} not_wolf_msg = {"text": "!kill not_nick", "user": "******"} night_g = get_fake_game_state() setup_users(night_g) message = app.process_message(too_many_targets_msg, g=night_g) assert message == "Not a valid command." message = app.process_message(no_target_msg, g=night_g) assert message == "Not a valid command." message = app.process_message(invalid_target_msg, g=night_g) assert message == "User not in the game." message = app.process_message(not_wolf_msg, g=night_g) assert message == "Not allowed." message_str = app.process_message(good_kill_msg, g=night_g) message_list = message_str.split("\n") assert message_list[0] == "nick was eaten." tear_down()
def test_vote_user_not_in_game_input(): fake_message = {"text": "!vote cd", "user": "******"} night_g = get_fake_game_state() setup_users(night_g) message = app.process_message(fake_message, g=night_g) assert message == "User not in the game." tear_down()
def test_no_vote_target_input(): fake_message = {"text": "!vote", "user": "******"} night_g = get_fake_game_state() setup_users(night_g) result = app.process_message(fake_message, g=night_g) assert result == "Not a valid command." tear_down()
def test_basic_input(): fake_message = {"text": "sup noob", "user": "******"} night_g = get_fake_game_state() result = app.process_message(fake_message, night_g) assert result == None tear_down()
def test_night_vote_input(): fake_message = {"text": "!vote not_nick", "user": "******"} night_g = get_fake_game_state() setup_users(night_g) message = app.process_message(fake_message, g=night_g) assert message == "It is not day." tear_down()
def test_day_voting_input(): fake_message = {"text": "!vote not_nick", "user": "******"} user_name = "nick" target_name = "not_nick" day_g = get_fake_game_state() day_g["ROUND"] = "day" setup_users(day_g) assert day_g["votes"] == {} message = app.process_message(fake_message, g=day_g) assert day_g["votes"] == {} # shouldn't mutate day_g assert message == user_name + " voted for " + target_name new_day_g = get_game_state() assert new_day_g["votes"] == {"ab": "cd"} # now it should be mutated # shouldn't be allowed to vote again. fake_message = {"text": "!vote not_nick", "user": "******"} message = app.process_message(fake_message, g=new_day_g) assert message == "You have already voted." tear_down()
def test_reset_game(): g = all_vote_but_one_state() setup_users(g) vote_lock_msg = {"text": "!vote nick", "user": "******"} # g has all votes except for "cd" vote # "cd" is werewolf once he locks vote, game should be # over for the village. message_str = app.process_message(vote_lock_msg, g=g) message_list = message_str.split("\n") assert message_list == "not_nick was lynched." new_g = get_game_state() print(new_g) assert new_g["STATUS"] == "INACTIVE" assert new_g["votes"] == {} assert new_g["players"] == {} assert new_g["ROUND"] == None tear_down()