Handles various HTTP conditions and raises HTTP exceptions to
        abort the request.

            - Content-MD5 request header must match the MD5 hash of the full
              input (:func:`assert_condition_md5`).
            - If-Match and If-None-Match etags are checked against the ETag of
              this resource (:func:`assert_condition_etag`).
            - If-Modified-Since and If-Unmodified-Since are checked against
              the modification date of this resource
              (:func:`assert_condition_last_modified`).

        .. todo:: Return a 501 exception when any Content-* headers have been
                  set in the request. (See :rfc:`2616`, section 9.6)

def assert_conditions(self):
        """Handles various HTTP conditions and raises HTTP exceptions to
        abort the request.

            - Content-MD5 request header must match the MD5 hash of the full
              input (:func:`assert_condition_md5`).
            - If-Match and If-None-Match etags are checked against the ETag of
              this resource (:func:`assert_condition_etag`).
            - If-Modified-Since and If-Unmodified-Since are checked against
              the modification date of this resource
              (:func:`assert_condition_last_modified`).

        .. todo:: Return a 501 exception when any Content-* headers have been
                  set in the request. (See :rfc:`2616`, section 9.6)
        """
        self.assert_condition_md5()
        etag = self.clean_etag(self.call_method('get_etag'))
        self.response.last_modified = self.call_method('get_last_modified')
        self.assert_condition_etag()
        self.assert_condition_last_modified()