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_setup_users(): night_g = get_fake_game_state() setup_users(night_g) test_user_map = get_user_map(night_g) players = night_g["players"].keys() players.sort() p1_id = players[0] p2_id = players[1] assert test_user_map.id_dict[p1_id] == "nick" assert test_user_map.id_dict[p2_id] == "not_nick" assert test_user_map.name_dict["nick"] == p1_id assert test_user_map.name_dict["not_nick"] == p2_id 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()