def test_module_resolver_with_mapping_specificity_rules(): # If a requirement demands a specific version, # do not map to a different version when the version # has not been specified explicitly with __test_base_path() as temp_directory: module_script = _setup_module_command(temp_directory, ''' -------------------------- /soft/modules/modulefiles --------------------------- blast/2.24 ''') mapping_file = os.path.join(temp_directory, "mapping") with open(mapping_file, "w") as f: f.write(''' - from: name: blast unversioned: true to: name: blast version: 2.24 ''') resolver = ModuleDependencyResolver(_SimpleDependencyManager(), modulecmd=module_script, mapping_files=mapping_file) module = resolver.resolve(ToolRequirement(name="blast", type="package")) assert module.module_name == "blast" assert module.module_version == "2.24", module.module_version # successful resolution, because Requirement does not ask for a specific version module = resolver.resolve(ToolRequirement(name="blast", version="2.22", type="package")) assert isinstance(module, NullDependency) # NullDependency, because we don't map `version: Null` over a Requirement that asks for a specific version
def test_module_resolver_with_mapping_specificity_rules(): # If a requirement demands a specific version, # do not map to a different version when the version # has not been specified explicitly with __test_base_path() as temp_directory: module_script = _setup_module_command( temp_directory, ''' -------------------------- /soft/modules/modulefiles --------------------------- blast/2.24 ''') mapping_file = os.path.join(temp_directory, "mapping") with open(mapping_file, "w") as f: f.write(''' - from: name: blast unversioned: true to: name: blast version: 2.24 ''') resolver = ModuleDependencyResolver(_SimpleDependencyManager(), modulecmd=module_script, mapping_files=mapping_file) module = resolver.resolve(ToolRequirement(name="blast", type="package")) assert module.module_name == "blast" assert module.module_version == "2.24", module.module_version # successful resolution, because Requirement does not ask for a specific version module = resolver.resolve( ToolRequirement(name="blast", version="2.22", type="package")) assert isinstance( module, NullDependency ) # NullDependency, because we don't map `version: Null` over a Requirement that asks for a specific version
def test_module_dependency_resolver(): with __test_base_path() as temp_directory: module_script = _setup_module_command(temp_directory, ''' -------------------------- /soft/modules/modulefiles --------------------------- JAGS/3.2.0-gcc45 JAGS/3.3.0-gcc4.7.2 ProbABEL/0.1-3 ProbABEL/0.1-9e R/2.12.2 R/2.13.1 R/2.14.1 R/2.15.0 R/2.15.1 R/3.0.1(default) abokia-blast/2.0.2-130524/ompi_intel abokia-blast/2.0.2-130630/ompi_intel --------------------------- /soft/intel/modulefiles ---------------------------- advisor/2013/update1 intel/11.1.075 mkl/10.2.1.017 advisor/2013/update2 intel/11.1.080 mkl/10.2.5.035 advisor/2013/update3 intel/12.0 mkl/10.2.7.041 ''') resolver = ModuleDependencyResolver(_SimpleDependencyManager(), modulecmd=module_script) module = resolver.resolve(ToolRequirement(name="R", version=None, type="package")) assert module.module_name == "R" assert module.module_version is None module = resolver.resolve(ToolRequirement(name="R", version="3.0.1", type="package")) assert module.module_name == "R" assert module.module_version == "3.0.1" module = resolver.resolve(ToolRequirement(name="R", version="3.0.4", type="package")) assert isinstance(module, NullDependency)
def test_module_resolver_with_mapping_versions(): with __test_base_path() as temp_directory: module_script = _setup_module_command( temp_directory, ''' -------------------------- /soft/modules/modulefiles --------------------------- blast/2.22.0-mpi blast/2.23 blast/2.24.0-mpi ''') mapping_file = os.path.join(temp_directory, "mapping") with open(mapping_file, "w") as f: f.write(''' - from: name: blast+ version: 2.24 to: name: blast version: 2.24.0-mpi - from: name: blast version: 2.22 to: version: 2.22.0-mpi ''') resolver = ModuleDependencyResolver(_SimpleDependencyManager(), modulecmd=module_script, mapping_files=mapping_file) module = resolver.resolve( ToolRequirement(name="blast+", version="2.24", type="package")) assert module.module_name == "blast" assert module.module_version == "2.24.0-mpi", module.module_version resolver = ModuleDependencyResolver(_SimpleDependencyManager(), modulecmd=module_script, mapping_files=mapping_file) module = resolver.resolve( ToolRequirement(name="blast+", version="2.23", type="package")) assert isinstance(module, NullDependency) module = resolver.resolve( ToolRequirement(name="blast", version="2.22", type="package")) assert module.module_name == "blast" assert module.module_version == "2.22.0-mpi", module.module_version
def test_module_dependency_resolver(): with __test_base_path() as temp_directory: module_script = os.path.join(temp_directory, "modulecmd") __write_script( module_script, '''#!/bin/sh cat %s/example_output 1>&2; ''' % temp_directory) with open(os.path.join(temp_directory, "example_output"), "w") as f: # Subset of module avail from MSI cluster. f.write(''' -------------------------- /soft/modules/modulefiles --------------------------- JAGS/3.2.0-gcc45 JAGS/3.3.0-gcc4.7.2 ProbABEL/0.1-3 ProbABEL/0.1-9e R/2.12.2 R/2.13.1 R/2.14.1 R/2.15.0 R/2.15.1 R/3.0.1(default) abokia-blast/2.0.2-130524/ompi_intel abokia-blast/2.0.2-130630/ompi_intel --------------------------- /soft/intel/modulefiles ---------------------------- advisor/2013/update1 intel/11.1.075 mkl/10.2.1.017 advisor/2013/update2 intel/11.1.080 mkl/10.2.5.035 advisor/2013/update3 intel/12.0 mkl/10.2.7.041 ''') resolver = ModuleDependencyResolver(None, modulecmd=module_script) module = resolver.resolve(name="R", version=None, type="package") assert module.module_name == "R" assert module.module_version is None module = resolver.resolve(name="R", version="3.0.1", type="package") assert module.module_name == "R" assert module.module_version == "3.0.1" module = resolver.resolve(name="R", version="3.0.4", type="package") assert module == INDETERMINATE_DEPENDENCY
def test_module_dependency_resolver(): with __test_base_path() as temp_directory: module_script = os.path.join(temp_directory, "modulecmd") __write_script(module_script, '''#!/bin/sh cat %s/example_output 1>&2; ''' % temp_directory) with open(os.path.join(temp_directory, "example_output"), "w") as f: # Subset of module avail from MSI cluster. f.write(''' -------------------------- /soft/modules/modulefiles --------------------------- JAGS/3.2.0-gcc45 JAGS/3.3.0-gcc4.7.2 ProbABEL/0.1-3 ProbABEL/0.1-9e R/2.12.2 R/2.13.1 R/2.14.1 R/2.15.0 R/2.15.1 R/3.0.1(default) abokia-blast/2.0.2-130524/ompi_intel abokia-blast/2.0.2-130630/ompi_intel --------------------------- /soft/intel/modulefiles ---------------------------- advisor/2013/update1 intel/11.1.075 mkl/10.2.1.017 advisor/2013/update2 intel/11.1.080 mkl/10.2.5.035 advisor/2013/update3 intel/12.0 mkl/10.2.7.041 ''') resolver = ModuleDependencyResolver(None, modulecmd=module_script) module = resolver.resolve( name="R", version=None, type="package" ) assert module.module_name == "R" assert module.module_version == None module = resolver.resolve( name="R", version="3.0.1", type="package" ) assert module.module_name == "R" assert module.module_version == "3.0.1" module = resolver.resolve( name="R", version="3.0.4", type="package" ) assert module == INDETERMINATE_DEPENDENCY
def test_module_resolver_with_mapping_versions(): with __test_base_path() as temp_directory: module_script = _setup_module_command(temp_directory, ''' -------------------------- /soft/modules/modulefiles --------------------------- blast/2.22.0-mpi blast/2.23 blast/2.24.0-mpi ''') mapping_file = os.path.join(temp_directory, "mapping") with open(mapping_file, "w") as f: f.write(''' - from: name: blast+ version: 2.24 to: name: blast version: 2.24.0-mpi - from: name: blast version: 2.22 to: version: 2.22.0-mpi ''') resolver = ModuleDependencyResolver(_SimpleDependencyManager(), modulecmd=module_script, mapping_files=mapping_file) module = resolver.resolve(ToolRequirement(name="blast+", version="2.24", type="package")) assert module.module_name == "blast" assert module.module_version == "2.24.0-mpi", module.module_version resolver = ModuleDependencyResolver(_SimpleDependencyManager(), modulecmd=module_script, mapping_files=mapping_file) module = resolver.resolve(ToolRequirement(name="blast+", version="2.23", type="package")) assert isinstance(module, NullDependency) module = resolver.resolve(ToolRequirement(name="blast", version="2.22", type="package")) assert module.module_name == "blast" assert module.module_version == "2.22.0-mpi", module.module_version
def test_module_resolver_with_mapping(): with __test_base_path() as temp_directory: module_script = _setup_module_command(temp_directory, ''' -------------------------- /soft/modules/modulefiles --------------------------- blast/2.24 ''') mapping_file = os.path.join(temp_directory, "mapping") with open(mapping_file, "w") as f: f.write(''' - from: blast+ to: blast ''') resolver = ModuleDependencyResolver(_SimpleDependencyManager(), modulecmd=module_script, mapping_files=mapping_file) module = resolver.resolve(ToolRequirement(name="blast+", version="2.24", type="package")) assert module.module_name == "blast" assert module.module_version == "2.24", module.module_version