def test_fetch(mock_archive, secure, _fetch_method, checksum_type, config, mutable_mock_repo): """Fetch an archive and make sure we can checksum it.""" mock_archive.url mock_archive.path algo = crypto.hash_fun_for_algo(checksum_type)() with open(mock_archive.archive_file, 'rb') as f: algo.update(f.read()) checksum = algo.hexdigest() # Get a spec and tweak the test package with new chcecksum params spec = Spec('url-test') spec.concretize() pkg = spack.repo.get('url-test') pkg.url = mock_archive.url pkg.versions[ver('test')] = {checksum_type: checksum, 'url': pkg.url} pkg.spec = spec # Enter the stage directory and check some properties with pkg.stage: with spack.config.override('config:verify_ssl', secure): with spack.config.override('config:url_fetch_method', _fetch_method): pkg.do_stage() with working_dir(pkg.stage.source_path): assert os.path.exists('configure') assert is_exe('configure') with open('configure') as f: contents = f.read() assert contents.startswith('#!/bin/sh') assert 'echo Building...' in contents
def test_fetch( mock_archive, secure, checksum_type, config, mutable_mock_packages ): """Fetch an archive and make sure we can checksum it.""" mock_archive.url mock_archive.path algo = crypto.hash_fun_for_algo(checksum_type)() with open(mock_archive.archive_file, 'rb') as f: algo.update(f.read()) checksum = algo.hexdigest() # Get a spec and tweak the test package with new chcecksum params spec = Spec('url-test') spec.concretize() pkg = spack.repo.get('url-test') pkg.url = mock_archive.url pkg.versions[ver('test')] = {checksum_type: checksum, 'url': pkg.url} pkg.spec = spec # Enter the stage directory and check some properties with pkg.stage: with spack.config.override('config:verify_ssl', secure): pkg.do_stage() with working_dir(pkg.stage.source_path): assert os.path.exists('configure') assert is_exe('configure') with open('configure') as f: contents = f.read() assert contents.startswith('#!/bin/sh') assert 'echo Building...' in contents
def test_hash_detection(checksum_type): algo = crypto.hash_fun_for_algo(checksum_type)() h = 'f' * (algo.digest_size * 2) # hex -> bytes checker = crypto.Checker(h) assert checker.hash_name == checksum_type