def request_resource_data(md5_file_name): request_url = project_resource_request_url(md5_file_name) try: response_data = common.url_response_data(request_url) verify_hash = hashlib.md5(response_data).hexdigest() assert verify_hash == os.path.splitext(md5_file_name)[0], "MD5 hash of response data not matching" return response_data except urllib2.HTTPError as e: raise common.ScratchtobatError("Error with {}: '{}'".format(request_url, e))
def request_project_code(project_id): def project_json_request_url(project_id): return helpers.config.get("SCRATCH_API", "project_url_template").format(project_id) try: request_url = project_json_request_url(project_id) return common.url_response_data(request_url) # except urllib2.HTTPError as e: except None as e: raise common.ScratchtobatError("Error with {}: '{}'".format(request_url, e))
def request_project_code(project_id): def project_json_request_url(project_id): return _HTTP_API_PROJECT.format(project_id) try: request_url = project_json_request_url(project_id) return common.url_response_data(request_url) # except urllib2.HTTPError as e: except None as e: raise common.ScratchtobatError("Error with {}: '{}'".format(request_url, e))
def __assertTagsAreNonempty(self, xml_root): header_tags = [FIELD_NAMES_TO_XML_NAMES[field] if field in FIELD_NAMES_TO_XML_NAMES else field for field in common.fields_of(catbase.XmlHeader) if field not in IGNORED_XML_HEADER_CLASS_FIELDS] mandatory_header_tags = set(header_tags) - set(OPTIONAL_HEADER_TAGS) for header_tag in header_tags: tag = "header/" + header_tag xml_node = xml_root.find(tag) assert xml_node is not None, "XML file error: tag '{}' must be available".format(tag) if header_tag in mandatory_header_tags: assert xml_node.text is not None, "XML file error: Value for tag '{}' must be set".format(tag) if header_tag == "screenMode": assert xml_node.text == catcommon.ScreenModes.MAXIMIZE.toString() # @UndefinedVariable elif header_tag == "remixOf": try: assert common.url_response_data(xml_node.text) is not None except urllib2.HTTPError, e: self.fail("Expection '{}' with url '{}'".format(e, xml_node.text))
def _request_project_info(project_id): # TODO: cache this request... response_data = common.url_response_data(_project_info_request_url(project_id)) return json.loads(response_data)
def _request_project_info(project_id): response_data = common.url_response_data(_project_info_request_url(project_id)) return json.loads(response_data)