Changeset 4488 for exist/trunk


Ignore:
Timestamp:
24/11/08 17:17:39 (11 years ago)
Author:
cbyrom
Message:

Move ndgUtils tests to their own test structure + fix various broken tests. Also move some utility methods from the MILK codebase to ndgUtils utility modules.

Location:
exist/trunk/python
Files:
30 added
17 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • exist/trunk/python/ndgUtils/models/Atom.py

    r4449 r4488  
    12711271 
    12721272 
    1273  
    12741273    def addUniqueLinks(self, dataArray, links): 
    12751274        ''' 
     
    12931292                dataArray.append(link) 
    12941293        logging.debug("Finished adding links") 
     1294         
     1295 
     1296    def moveBox(self, w,e): 
     1297        ''' Take a 0,360 bounding box and force into -180,180 ''' 
     1298        ww,ee=float(w),float(e) 
     1299        if ww<180.0 and ee>180.0: 
     1300            return ww-180.0,ee-180.0 
     1301        else: 
     1302           if ww>180.0: 
     1303               return ww-360.,ee-360. 
     1304           else:  
     1305               return ww,ee 
  • exist/trunk/python/ndgUtils/models/utilities.py

    r4444 r4488  
    146146         
    147147    return newDate 
    148          
     148 
     149 
     150def formatDateYYYY(dateString): 
     151    ''' Simple date manipulations on a string, if it is understood ...  
     152       if instruction = YYYY, return the year  
     153    NB, this is historical relic - used by DIF.  Unsure of format used by DIF - prob 
     154    better replaced by formatDateYYYYMMDD method 
     155    ''' 
     156    s=dateString.split('-') 
     157    if len(s)==3: # expecting year,mon,day or day,mon,year ...  
     158        if int(s[0])>int(s[2]):  
     159            return s[0] 
     160        else: 
     161            return s[2] 
     162    else: 
     163        return dateString # unknown format as yet ... 
    149164     
    150165     
     
    223238    def get(self): 
    224239        return self.paramSummaries 
     240 
     241 
     242def wrapGetText(element,xpathExpression,multiple=0): 
     243    '''  
     244    Wraps a call to ET to get a text object in an error handler  
     245    ''' 
     246    def none2txt(i): 
     247        if i is None:  
     248            return '' 
     249        return i 
     250 
     251    if element is None: 
     252        if multiple: 
     253            return ['',] 
     254        else:  
     255            return '' 
     256 
     257    if multiple: 
     258        r=element.findall(xpathExpression) 
     259    else: 
     260        r=[element.find(xpathExpression),] 
     261 
     262    rr = [] 
     263    try: 
     264        rr=[i.text for i in r] 
     265    except: 
     266        rr=map(none2txt,rr)  
     267 
     268    if multiple: 
     269        return rr 
     270 
     271    return rr[0]  
  • exist/trunk/python/ndgUtils/vocabtermdata.py

    r4440 r4488  
    397397            uri = self.TERM_DATA[termName].vocabURL 
    398398            currentVersion = self._getURIVersion(uri) 
    399      
    400             self.latestTermVersion[termName] = str(currentVersion) 
     399 
     400            if currentVersion is not None: 
     401                if currentVersion: 
     402                    self.latestTermVersion[termName] = str(currentVersion) 
     403                else: 
     404                    self.latestTermVersion[termName] = str(uri) 
    401405        logging.info("Latest term version for term, '%s' retrieved" %termName) 
    402406 
     
    407411        @param uri: uri to look for 
    408412        @raise VocabTermDataError: if specified uri not found in vocab server  
    409         @return version of vocab uri, '' if uri contains latest version and None if uri not found 
    410         ''' 
     413        @return version of vocab uri, '' if uri contains latest version, None if uri not found 
     414        ''' 
     415        logging.debug("Getting current version number of uri, '%s'" %uri) 
    411416        # allow the data to be refreshed on an hourly basis 
    412417        pageData = self._getVocabDataPage() 
     
    425430            # being split out - so ignore this - since the original uri is already specified in full 
    426431            if not version: 
    427                 currentVersion = '' 
    428                 break 
     432                logging.debug("Specified URI already contains current version") 
     433                return '' 
    429434 
    430435            # TODO: check how the versioning system will be done - i.e. 3.2.4 type versioning will cause this to break 
     
    439444            # TODO: uncomment the ValueError once all the vocab terms have been defined 
    440445            #raise VocabTermDataError(errorMessage) 
     446        else: 
     447            logging.debug("Version number found: '%s'" %currentVersion) 
    441448 
    442449        return currentVersion 
     
    470477            self.getLatestTermVersion(termName) 
    471478 
    472         uri = self.TERM_DATA[termName].vocabURL + \ 
    473             "/" + self.latestTermVersion[termName] + "/" + \ 
    474             self.TERM_DATA[termName].termID 
    475         logging.debug("Returning vocab URL: '%s'" %uri) 
     479        uri = None 
     480        if termName in self.latestTermVersion: 
     481            uri = self.TERM_DATA[termName].vocabURL + \ 
     482                "/" + self.latestTermVersion[termName] + "/" + \ 
     483                self.TERM_DATA[termName].termID 
     484            logging.debug("Returning vocab URL: '%s'" %uri) 
     485        else: 
     486            logging.debug("URL not found...") 
    476487        return  uri 
    477488     
     
    484495        currentVersion = self._getURIVersion(uri) 
    485496        logging.debug("URI version looked up") 
    486         if currentVersion is not None: 
     497        # NB, this can validly return None or '' - ignore both cases  
     498        if currentVersion: 
    487499            if not uri.endswith('/'): 
    488500                uri += '/' 
Note: See TracChangeset for help on using the changeset viewer.