def test_env_with_included_config_scope(): config_scope_path = os.path.join(ev.root('test'), 'config') test_config = """\ env: include: - %s specs: - mpileaks """ % config_scope_path spack.package_prefs.PackagePrefs.clear_caches() _env_create('test', StringIO(test_config)) e = ev.read('test') fs.mkdirp(config_scope_path) with open(os.path.join(config_scope_path, 'packages.yaml'), 'w') as f: f.write("""\ packages: mpileaks: version: [2.2] """) ev.prepare_config_scope(e) e.concretize() assert any(x.satisfies('[email protected]') for x in e._get_environment_specs())
def test_env_config_precedence(): test_config = """\ env: packages: libelf: version: [0.8.12] include: - ./included-config.yaml specs: - mpileaks """ spack.package_prefs.PackagePrefs.clear_caches() _env_create('test', StringIO(test_config)) e = ev.read('test') with open(os.path.join(e.path, 'included-config.yaml'), 'w') as f: f.write("""\ packages: mpileaks: version: [2.2] libelf: version: [0.8.11] """) ev.prepare_config_scope(e) e.concretize() # ensure included scope took effect assert any(x.satisfies('[email protected]') for x in e._get_environment_specs()) # ensure env file takes precedence assert any( x.satisfies('[email protected]') for x in e._get_environment_specs())
def test_env_with_included_config_scope(): config_scope_path = os.path.join(ev.root('test'), 'config') test_config = """\ env: include: - %s specs: - mpileaks """ % config_scope_path spack.package_prefs.PackagePrefs.clear_caches() _env_create('test', StringIO(test_config)) e = ev.read('test') fs.mkdirp(config_scope_path) with open(os.path.join(config_scope_path, 'packages.yaml'), 'w') as f: f.write("""\ packages: mpileaks: version: [2.2] """) ev.prepare_config_scope(e) e.concretize() assert any(x.satisfies('[email protected]') for x in e._get_environment_specs())
def test_env_with_config(): test_config = """\ env: specs: - mpileaks packages: mpileaks: version: [2.2] """ spack.package_prefs.PackagePrefs.clear_caches() _env_create('test', StringIO(test_config)) e = ev.read('test') ev.prepare_config_scope(e) e.concretize() assert any(x.satisfies('[email protected]') for x in e._get_environment_specs())
def test_env_with_config(): test_config = """\ env: specs: - mpileaks packages: mpileaks: version: [2.2] """ spack.package_prefs.PackagePrefs.clear_caches() _env_create('test', StringIO(test_config)) e = ev.read('test') ev.prepare_config_scope(e) e.concretize() assert any(x.satisfies('[email protected]') for x in e._get_environment_specs())
def test_included_config_precedence(): test_config = """\ env: include: - ./high-config.yaml # this one should take precedence - ./low-config.yaml specs: - mpileaks """ spack.package_prefs.PackagePrefs.clear_caches() _env_create('test', StringIO(test_config)) e = ev.read('test') with open(os.path.join(e.path, 'high-config.yaml'), 'w') as f: f.write("""\ packages: libelf: version: [0.8.10] # this should override libelf version below """) with open(os.path.join(e.path, 'low-config.yaml'), 'w') as f: f.write("""\ packages: mpileaks: version: [2.2] libelf: version: [0.8.12] """) ev.prepare_config_scope(e) e.concretize() assert any( x.satisfies('[email protected]') for x in e._get_environment_specs()) assert any( [x.satisfies('[email protected]') for x in e._get_environment_specs()])
def test_included_config_precedence(): test_config = """\ env: include: - ./high-config.yaml # this one should take precedence - ./low-config.yaml specs: - mpileaks """ spack.package_prefs.PackagePrefs.clear_caches() _env_create('test', StringIO(test_config)) e = ev.read('test') with open(os.path.join(e.path, 'high-config.yaml'), 'w') as f: f.write("""\ packages: libelf: version: [0.8.10] # this should override libelf version below """) with open(os.path.join(e.path, 'low-config.yaml'), 'w') as f: f.write("""\ packages: mpileaks: version: [2.2] libelf: version: [0.8.12] """) ev.prepare_config_scope(e) e.concretize() assert any( x.satisfies('[email protected]') for x in e._get_environment_specs()) assert any( [x.satisfies('[email protected]') for x in e._get_environment_specs()])
def test_env_config_precedence(): test_config = """\ env: packages: libelf: version: [0.8.12] include: - ./included-config.yaml specs: - mpileaks """ spack.package_prefs.PackagePrefs.clear_caches() _env_create('test', StringIO(test_config)) e = ev.read('test') with open(os.path.join(e.path, 'included-config.yaml'), 'w') as f: f.write("""\ packages: mpileaks: version: [2.2] libelf: version: [0.8.11] """) ev.prepare_config_scope(e) e.concretize() # ensure included scope took effect assert any( x.satisfies('[email protected]') for x in e._get_environment_specs()) # ensure env file takes precedence assert any( x.satisfies('[email protected]') for x in e._get_environment_specs())