Changeset 4589 for exist/trunk


Ignore:
Timestamp:
11/12/08 09:42:27 (11 years ago)
Author:
cbyrom
Message:

Add debug mode to validator to allow for more detailed output + add
better check for authors details + expand error messages for invalid
links to demonstrate the required formatting.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • exist/trunk/python/ndgUtils/lib/atomvalidator.py

    r4530 r4589  
    1212''' 
    1313import logging, traceback, datetime, xmlrpclib, socket 
    14 import ndgUtils.models.existdbclient as edc 
     14import ndgUtils.lib.existdbclient as edc 
    1515from ndgUtils.vocabtermdata import isValidTermURI 
    1616from ndgUtils.models.Atom import Atom 
     
    5656         
    5757    def __init__(self, atom, dbConfigFile, raiseException = False, \ 
    58                  newLineChar= NEW_LINE, loadAllCollections = False): 
     58                 newLineChar= NEW_LINE, loadAllCollections = False, \ 
     59                 isDebug = False): 
    5960        ''' 
    6061        Set up validator object - with atom to validate 
     
    6566        @keyword loadAllCollections: loads all collections info when initialising eXist 
    6667        connection, if True 
     68        @keyword isDebug: if True, provide more detailed output 
    6769        ''' 
    6870        logging.info("Setting up atomValidation object") 
    6971        self._atom = atom 
    7072        self._nl = newLineChar 
     73        self._isDebug = isDebug 
    7174         
    7275        # collections to effectively cache positive results - to avoid multiple 
     
    151154        if not self._atom.title: 
    152155            self.__addError('title', "Title attribute cannot be empty") 
     156             
     157        if not self._atom.author.hasValue(): 
     158            self.__addError('Author.0.name', "Author name cannot be empty") 
    153159             
    154160        if self._atom.minX or self._atom.maxX or self._atom.minY or self._atom.maxY: 
     
    194200                    timeErrors += "Inconsistent date range - '%s' is not before '%s'" \ 
    195201                        %(strftime(d1, self._atom.YEAR_FORMAT), strftime(d2, self._atom.YEAR_FORMAT)) 
    196 #                        %(d1.strftime(self._atom.YEAR_FORMAT), d2.strftime(self._atom.YEAR_FORMAT)) 
    197202 
    198203            if timeErrors: 
     
    236241                         
    237242                except Exception, e: 
    238                     self.__addError(self.BROKEN_LINKS, e.message) 
     243                    errorMessage = e.message 
     244                    if errorMessage.startswith('unknown url type'): 
     245                        errorMessage += " - NB, url must be of format, 'http://blah.co.uk'" 
     246                    self.__addError(self.BROKEN_LINKS, errorMessage) 
    239247 
    240248        logging.info("Completed link validation") 
     
    287295        atomPath = self._atom.getDefaultCollectionPath() + self._atom.atomName 
    288296        try: 
    289             errors = self._eXist.checkAtomSchemaCompliance(atomPath, atom = self._atom) 
     297            errors = self._eXist.checkAtomSchemaCompliance(atomPath, atom = self._atom, \ 
     298                                                           isDebug = self._isDebug) 
    290299            for error in errors: 
    291300                self.__addError(self.SCHEMA_VALIDATION_FAILURE, error) 
Note: See TracChangeset for help on using the changeset viewer.