def update_index(mirror_url, update_keys=False): mirror = spack.mirror.MirrorCollection().lookup(mirror_url) outdir = url_util.format(mirror.push_url) bindist.generate_package_index( url_util.join(outdir, bindist.build_cache_relative_path())) if update_keys: keys_url = url_util.join(outdir, bindist.build_cache_relative_path(), bindist.build_cache_keys_relative_path()) bindist.generate_key_index(keys_url)
def buildcache_update_index(args): """Update a buildcache index.""" outdir = '.' if args.mirror_url: outdir = args.mirror_url mirror = spack.mirror.MirrorCollection().lookup(outdir) outdir = url_util.format(mirror.push_url) bindist.generate_package_index( url_util.join(outdir, bindist.build_cache_relative_path())) if args.keys: keys_url = url_util.join(outdir, bindist.build_cache_relative_path(), bindist.build_cache_keys_relative_path()) bindist.generate_key_index(keys_url)
def test_generate_indices_key_error(monkeypatch, capfd): def mock_list_url(url, recursive=False): print('mocked list_url({0}, {1})'.format(url, recursive)) raise KeyError('Test KeyError handling') monkeypatch.setattr(web_util, 'list_url', mock_list_url) test_url = 'file:///fake/keys/dir' # Make sure generate_key_index handles the KeyError bindist.generate_key_index(test_url) err = capfd.readouterr()[1] assert 'Warning: No keys at {0}'.format(test_url) in err # Make sure generate_package_index handles the KeyError bindist.generate_package_index(test_url) err = capfd.readouterr()[1] assert 'Warning: No packages at {0}'.format(test_url) in err
def test_generate_indices_exception(monkeypatch, capfd): def mock_list_url(url, recursive=False): print('mocked list_url({0}, {1})'.format(url, recursive)) raise Exception('Test Exception handling') monkeypatch.setattr(web_util, 'list_url', mock_list_url) test_url = 'file:///fake/keys/dir' # Make sure generate_key_index handles the Exception bindist.generate_key_index(test_url) err = capfd.readouterr()[1] expect = 'Encountered problem listing keys at {0}'.format(test_url) assert expect in err # Make sure generate_package_index handles the Exception bindist.generate_package_index(test_url) err = capfd.readouterr()[1] expect = 'Encountered problem listing packages at {0}'.format(test_url) assert expect in err