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)
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()
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)