示例#1
0
def test_find_latest_metadata():
    """ Check find latest metadata. """
    assert symrec.find_latest_metadata(os.path.join(os.environ['TEST_DATA'], "data/symrec/override/none")) == None
    
    expected = os.path.normpath(os.path.join(os.environ['TEST_DATA'], "data/symrec/override/one", "release_metadata.xml"))
    filename = symrec.find_latest_metadata(os.path.dirname(expected))
    assert expected == filename, "Should be %s (%s)" % (expected, filename)

    expected = os.path.normpath(os.path.join(os.environ['TEST_DATA'], "data/symrec/override/several", "release_metadata_2.xml"))
    filename = symrec.find_latest_metadata(os.path.dirname(expected))
    assert expected == filename, "Should be %s (%s)" % (expected, filename)
示例#2
0
def get_s60_env_details(grace, service, product, release, rev, cachefilename, s60gracecheckmd5, s60graceusetickler):
    """ Return s60 environ details """
    validate(grace, service, product, release)
    revision = r'(_\d{3})?'
    if rev != None:
        revision = rev

    if cachefilename:
        logger.info(str("Using cache file: %s" % cachefilename))
    
    checkmd5 = False
    if s60gracecheckmd5 != None:
        checkmd5 = str(s60gracecheckmd5).lower()
        checkmd5 = ((checkmd5 == "true") or (checkmd5 == "1") or (checkmd5 == "on"))
                
    branch = os.path.join(grace, service, product)
    if not os.path.exists(branch):
        raise Exception("Error occurred: Could not find directory %s" % branch)
        
    result = []
    for rel in os.listdir(branch):
        relpath = os.path.join(branch, rel)
        logger.info("Checking: %s" % str(relpath))
        res = re.match(r"%s%s$" % (release, revision), rel, re.I)
        if res != None:
            logger.info("Found: %s" % str(relpath))
            result.append(relpath)
    result.sort(reverse=True)
    use_tickler = False
    tickler_validation = str(s60graceusetickler).lower()
    if tickler_validation != None:
        use_tickler = ((tickler_validation == "true") or (tickler_validation == "1"))
    validresults = []
    for rel in result:
        try:
            metadata_filename = symrec.find_latest_metadata(str(rel))
            if metadata_filename is not None and os.path.exists(metadata_filename):
                logger.info(str("Validating: %s" % metadata_filename))
                if (use_tickler):
                    validator = symrec.ValidateTicklerReleaseMetadata(metadata_filename, cachefilename)
                else:
                    validator = symrec.ValidateReleaseMetadataCached(metadata_filename, cachefilename)
                if validator.is_valid(checkmd5):
                    logger.info(str("%s is valid." % rel))
                    validresults.append(rel)
                    break
                else:
                    logger.info(str("%s is not a valid release." % rel))
            elif metadata_filename is None:
                logger.info(str("Could not find the release metadata file under %s" % rel))
        except Exception, e:
            logger.warning(str("WARNING: %s: %s" % (rel , e)))
            logger.warning(("%s is not a valid release." % rel))
            traceback.print_exc()
示例#3
0
def test_find_latest_metadata_invalid_path():
    """ Check find latest metadata with an invalid path. """
    path = os.path.join(os.environ['TEST_DATA'], "data/symrec/override/invalid")
    open(path, "w+").close()
    assert symrec.find_latest_metadata(path) == None
    os.remove(path)