def test_write_about_json_without_conda_on_path(testing_workdir, testing_metadata): with put_bad_conda_on_path(testing_workdir): # verify that the correct (bad) conda is the one we call with pytest.raises(subprocess.CalledProcessError): subprocess.check_output('conda -h', env=os.environ, shell=True) build.write_about_json(testing_metadata) output_file = os.path.join(testing_metadata.config.info_dir, 'about.json') assert os.path.isfile(output_file) with open(output_file) as f: about = json.load(f) assert 'conda_version' in about assert 'conda_build_version' in about
def create_info_files(m, files, prefix): """ Creates the metadata files that will be stored in the built package. :param m: Package metadata :type m: Metadata :param files: Paths to files to include in package :type files: list of str """ if utils.on_win: # make sure we use '/' path separators in metadata files = [_f.replace("\\", "/") for _f in files] if m.config.filename_hashing: write_hash_input(m) write_info_json(m) # actually index.json write_about_json(m) write_link_json(m) write_run_exports(m) # TODO copy_recipe(m) copy_readme(m) copy_license(m) copy_recipe_log(m) # files.extend(jsonify_info_yamls(m)) create_all_test_files(m, test_dir=join(m.config.info_dir, "test")) if m.config.copy_test_source_files: copy_test_source_files(m, join(m.config.info_dir, "test")) write_info_files_file(m, files) files_with_prefix = get_files_with_prefix(m, [], files, prefix) record_prefix_files(m, files_with_prefix) checksums = create_info_files_json_v1(m, m.config.info_dir, prefix, files, files_with_prefix) # write_no_link(m, files) sources = m.get_section("source") if hasattr(sources, "keys"): sources = [sources] with io.open(join(m.config.info_dir, "git"), "w", encoding="utf-8") as fo: for src in sources: if src.get("git_url"): source.git_info( os.path.join(m.config.work_dir, src.get("folder", "")), build_prefix=m.config.build_prefix, verbose=m.config.verbose, fo=fo, ) if m.get_value("app/icon"): utils.copy_into( join(m.path, m.get_value("app/icon")), join(m.config.info_dir, "icon.png"), m.config.timeout, locking=m.config.locking, ) return checksums