def __splitElement(self, body, attribute_name, attribute_value): """ split the differents lines by \n and return the line associated a a name :param body: :param name: :return: """ temp = body i = 1 list = [] while len(temp) > 0: if temp[i] == "\n": list.append(temp[:i]) temp = temp[i + 1:] i = 0 i = i + 1 if i == len(temp): break for i in range(len(list) - 1, -1, -1): #from last element in the list until first, desc dictTemp = general_utils.convert_str_to_dict( list[i], general_utils.JSON) if dictTemp[ATTR_NAME] == attribute_name and dictTemp[ ATTR_VALUE] == attribute_value: return dictTemp return NAME_IS_MISSING
def verify_version (self): """ Verify if ckan is installed and that version is the expected, default version is 2.0 """ if self.ckan_verify_version.lower() == "true": resp= http_utils.request(http_utils.GET, url=self.__create_url(VERSION), headers=self.__create_headers()) body_dict = general_utils.convert_str_to_dict(resp.text, general_utils.JSON) assert self.version == str(body_dict[VERSION]), \ "Wrong ckan version verified: %s. Expected: %s. \n\nBody content: %s" % (str(body_dict[VERSION]), str(self.version), str(resp.text)) return True
def verify_if_dataset_exist(self, name): """ Verify if the dataset exist :param name: dataset name :return: return True if de dataset does not exist, False if it does exist """ resp = http_utils.request(http_utils.GET, url=self.__create_url(PACKAGE_SHOW, name), headers=self.__create_headers()) if resp.status_code == http_utils.status_codes[http_utils.OK]: bodyDict= general_utils.convert_str_to_dict(resp.text, general_utils.JSON) self.dataset_id = bodyDict[RESULT][ID] return self.dataset_id return False
def verify_if_organization_exist(self, name): """ Verify if the organization exist :param name: organization name :return: return True if de organization does not exist, False if it does exist """ resp = http_utils.request(http_utils.GET, url=self.__create_url(ORGANIZATION_LIST, name), headers=self.__create_headers()) http_utils.assert_status_code(http_utils.status_codes[http_utils.OK], resp, "ERROR - list of the names of the site's organizations...") body_dict = general_utils.convert_str_to_dict(resp.text, general_utils.JSON) for i in range(len(body_dict[RESULT])): if body_dict[RESULT][i] == name: return True return False
def verify_version(self): """ Verify if ckan is installed and that version is the expected, default version is 2.0 """ if self.ckan_verify_version.lower() == "true": resp = http_utils.request(http_utils.GET, url=self.__create_url(VERSION), headers=self.__create_headers()) body_dict = general_utils.convert_str_to_dict( resp.text, general_utils.JSON) assert self.version == str(body_dict[VERSION]), \ "Wrong ckan version verified: %s. Expected: %s. \n\nBody content: %s" % (str(body_dict[VERSION]), str(self.version), str(resp.text)) return True
def create_resource(self, name, dataset_name, fields=[]): self.resource = name if not(self.verify_if_resource_exist(name, dataset_name)): payload = general_utils.convert_dict_to_str({NAME: self.resource, URL: URL_EXAMPLE, PACKAGE_ID: self.dataset_id}, general_utils.JSON) resp= http_utils.request(http_utils.POST, url=self.__create_url(RESOURCE_CREATE), headers=self.__create_headers(), data=payload) http_utils.assert_status_code(http_utils.status_codes[http_utils.OK], resp, "ERROR - creating resource: %s ..." % (name)) bodyDict= general_utils.convert_str_to_dict(resp.text, general_utils.JSON) self.resource_id = bodyDict[RESULT][ID] self.__create_datastore_in_resource (self.resource_id, fields) return self.resource_id return False
def verify_if_dataset_exist(self, name): """ Verify if the dataset exist :param name: dataset name :return: return True if de dataset does not exist, False if it does exist """ resp = http_utils.request(http_utils.GET, url=self.__create_url(PACKAGE_SHOW, name), headers=self.__create_headers()) if resp.status_code == http_utils.status_codes[http_utils.OK]: bodyDict = general_utils.convert_str_to_dict( resp.text, general_utils.JSON) self.dataset_id = bodyDict[RESULT][ID] return self.dataset_id return False
def verify_if_resource_exist(self, name, dataset_name): """ Verify if the resource exist in a dataset :param name: resource name :param dataset_id: :return: return True if de resource does not exist, False if it does exist """ resp = http_utils.request(http_utils.GET, url=self.__create_url(PACKAGE_SHOW, dataset_name), headers=self.__create_headers()) if resp.status_code == http_utils.status_codes[http_utils.OK]: body_dict = general_utils.convert_str_to_dict(resp.text, general_utils.JSON) for i in range(len(body_dict[RESULT][RESOURCES])): if body_dict[RESULT][RESOURCES][i][NAME] == name: self.resource_id = body_dict[RESULT][RESOURCES][i][ID] return self.resource_id return False
def create_dataset (self, name): """ Create a new dataset if it does not exist :param name: dataset name """ self.dataset = name if not(self.verify_if_dataset_exist( name)): payload = general_utils.convert_dict_to_str({NAME: self.dataset, OWNER_ORG: self.organization}, general_utils.JSON) resp= http_utils.request(http_utils.POST, url=self.__create_url(PACKAGE_CREATE), headers=self.__create_headers(), data=payload) http_utils.assert_status_code(http_utils.status_codes[http_utils.OK], resp, "ERROR - creating dataset: %s ..." % (name)) bodyDict= general_utils.convert_str_to_dict(resp.text, general_utils.JSON) self.dataset_id = bodyDict[RESULT][ID] return bodyDict[RESULT][ID] return False
def verify_if_organization_exist(self, name): """ Verify if the organization exist :param name: organization name :return: return True if de organization does not exist, False if it does exist """ resp = http_utils.request(http_utils.GET, url=self.__create_url( ORGANIZATION_LIST, name), headers=self.__create_headers()) http_utils.assert_status_code( http_utils.status_codes[http_utils.OK], resp, "ERROR - list of the names of the site's organizations...") body_dict = general_utils.convert_str_to_dict(resp.text, general_utils.JSON) for i in range(len(body_dict[RESULT])): if body_dict[RESULT][i] == name: return True return False
def verify_if_resource_exist(self, name, dataset_name): """ Verify if the resource exist in a dataset :param name: resource name :param dataset_id: :return: return True if de resource does not exist, False if it does exist """ resp = http_utils.request(http_utils.GET, url=self.__create_url( PACKAGE_SHOW, dataset_name), headers=self.__create_headers()) if resp.status_code == http_utils.status_codes[http_utils.OK]: body_dict = general_utils.convert_str_to_dict( resp.text, general_utils.JSON) for i in range(len(body_dict[RESULT][RESOURCES])): if body_dict[RESULT][RESOURCES][i][NAME] == name: self.resource_id = body_dict[RESULT][RESOURCES][i][ID] return self.resource_id return False
def create_resource(self, name, dataset_name, fields=[]): self.resource = name if not (self.verify_if_resource_exist(name, dataset_name)): payload = general_utils.convert_dict_to_str( { NAME: self.resource, URL: URL_EXAMPLE, PACKAGE_ID: self.dataset_id }, general_utils.JSON) resp = http_utils.request(http_utils.POST, url=self.__create_url(RESOURCE_CREATE), headers=self.__create_headers(), data=payload) http_utils.assert_status_code( http_utils.status_codes[http_utils.OK], resp, "ERROR - creating resource: %s ..." % (name)) bodyDict = general_utils.convert_str_to_dict( resp.text, general_utils.JSON) self.resource_id = bodyDict[RESULT][ID] self.__create_datastore_in_resource(self.resource_id, fields) return self.resource_id return False
def __splitElement (self, body, attribute_name, attribute_value): """ split the differents lines by \n and return the line associated a a name :param body: :param name: :return: """ temp = body i=1 list = [] while len(temp)> 0: if temp[i] == "\n": list.append(temp[:i]) temp = temp[i+1:] i = 0 i=i+1 if i == len(temp): break for i in range(len(list)-1, -1, -1): #from last element in the list until first, desc dictTemp = general_utils.convert_str_to_dict(list[i], general_utils.JSON) if dictTemp [ATTR_NAME] == attribute_name and dictTemp [ATTR_VALUE] == attribute_value : return dictTemp return NAME_IS_MISSING
def create_dataset(self, name): """ Create a new dataset if it does not exist :param name: dataset name """ self.dataset = name if not (self.verify_if_dataset_exist(name)): payload = general_utils.convert_dict_to_str( { NAME: self.dataset, OWNER_ORG: self.organization }, general_utils.JSON) resp = http_utils.request(http_utils.POST, url=self.__create_url(PACKAGE_CREATE), headers=self.__create_headers(), data=payload) http_utils.assert_status_code( http_utils.status_codes[http_utils.OK], resp, "ERROR - creating dataset: %s ..." % (name)) bodyDict = general_utils.convert_str_to_dict( resp.text, general_utils.JSON) self.dataset_id = bodyDict[RESULT][ID] return bodyDict[RESULT][ID] return False