Esempio n. 1
0
def change_voted_message_and_redirect(event, _):
    """
    Change the user's voted message and redirect.
    """
    # Parse the parameters
    params = parse_qs(event["body"])

    # Check if the user is logged in correctly
    username = get_logged_in_user(event)
    if not username:
        return create_response(400, "POST", "User not logged in correctly")

    # Set the voted message and redirect
    voted_params = dict(user=username, voted_message=None, voted_redirect=None)
    if "voted_redirect" in params and params["voted_redirect"]:
        voted_params["voted_redirect"] = params["voted_redirect"][0]
    if "voted_message" in params and params["voted_message"]:
        voted_params["voted_message"] = params["voted_message"][0]

    user = User()
    try:
        user.set_voted_message_and_redirect(**voted_params)
    except ValueError as error:
        return create_response(400, "POST", str(error))

    return create_response(200, "POST")
Esempio n. 2
0
    def set_voted_message_and_redirect(self):
        user = User()

        # Positive cases voted message
        user.set_voted_message_and_redirect("user_1", "New voted message",
                                            None)
        user_data = user.get_user_by_username("user_1")
        self.assertEqual(user_data["voted_message"], "New voted message")
        self.assertEqual(user_data["voted_redirect"], None)

        user.set_voted_message_and_redirect("user_2",
                                            "Other new voted message", None)
        user_data = user.get_user_by_username("user_2")
        self.assertEqual(user_data["voted_message"], "Other new voted message")
        self.assertEqual(user_data["voted_redirect"], None)

        # Positive cases voted redirect
        user.set_voted_message_and_redirect(
            "user_1", None, "https://iwanttoreadmore.com/voted")
        user_data = user.get_user_by_username("user_1")
        self.assertEqual(user_data["voted_redirect"],
                         "https://iwanttoreadmore.com/voted")
        self.assertEqual(user_data["voted_message"], None)

        # Positive cases both
        user.set_voted_message_and_redirect(
            "user_1", "Some message", "https://iwanttoreadmore.com/voted")
        user_data = user.get_user_by_username("user_1")
        self.assertEqual(user_data["voted_message"], "Some message")
        self.assertEqual(user_data["voted_redirect"],
                         "https://iwanttoreadmore.com/voted")

        # Negative case user
        self.assertRaises(ValueError, user.set_voted_message_and_redirect,
                          "user_X", "Message", None)

        # Negative cases voted message
        self.assertRaises(
            ValueError,
            user.set_voted_message_and_redirect,
            "user_1",
            "<b>Tags</b>",
            None,
        )
        self.assertRaises(ValueError, user.set_voted_message_and_redirect,
                          "user_1", "M" * 501, None)

        # Negative cases voted redirect
        user.set_voted_message_and_redirect(
            "user_2", None, "https://iwanttoreadmore.com/voted2")
        user_data = user.get_user_by_username("user_2")
        self.assertEqual(user_data["voted_redirect"],
                         "https://iwanttoreadmore.com/voted2")
        self.assertEqual(user_data["voted_message"], None)

        self.assertRaises(
            ValueError,
            user.set_voted_message_and_redirect,
            "user_1",
            None,
            "nonurltext",
        )
        self.assertRaises(ValueError, user.set_voted_message_and_redirect,
                          "user_1", None, "a" * 501)