def METHOD_NAME(self, topic, qos=0, timeout=1):
    """Subscribe to a topic and return a message payload received
        within the specified time.
    `topic` topic to subscribe to
    `qos` quality of service for the subscription, default to QoS 0
    `timeout` duration of subscription, default to 1 second
    Examples:
    Subscribe and get a list of all messages received within 5 seconds
    | ${messages}= | Subscribe | test/test | qos=1 | timeout=5 |
    """
    timeout = 1 if timeout < 1 else timeout
    self._client.METHOD_NAME(Subscription(topic, qos))
    if self._wait(self._subcribed, timeout=timeout):
        raise Exception(
            "MQTT client subscribe timeout topic=%s qos=%s" % (topic, qos))
    logger.info("MQTT client subscribed to topic=%s qos=%s" % (topic, qos))