def runTest(self): """ Test with some basic testcases (also check if he can find dependencies inside the given directory """ easyconfig = { 'spec': '_', 'module': 'name/version', 'dependencies': [] } res = main.resolve_dependencies([deepcopy(easyconfig)], None) self.assertEqual([easyconfig], res) easyconfig_dep = { 'ec': { 'name': 'foo', 'version': '1.2.3', 'versionsuffix': '', 'toolchain': {'name': 'dummy', 'version': 'dummy'}, }, 'spec': '_', 'module': 'name/version', 'dependencies': [{ 'name': 'gzip', 'version': '1.4', 'versionsuffix': '', 'toolchain': {'name': 'dummy', 'version': 'dummy'}, 'dummy': True, }], 'parsed': True, } res = main.resolve_dependencies([deepcopy(easyconfig_dep)], self.base_easyconfig_dir) # Dependency should be found self.assertEqual(len(res), 2) # here we have include a Dependency in the easyconfig list easyconfig['module'] = 'gzip/1.4' res = main.resolve_dependencies([deepcopy(easyconfig_dep), deepcopy(easyconfig)], None) # all dependencies should be resolved self.assertEqual(0, sum(len(ec['dependencies']) for ec in res)) # this should not resolve (cannot find gzip-1.4.eb) self.assertRaises(EasyBuildError, main.resolve_dependencies, [deepcopy(easyconfig_dep)], None) # test if dependencies of an automatically found file are also loaded easyconfig_dep['dependencies'] = [{ 'name': 'gzip', 'version': '1.4', 'versionsuffix': '', 'toolchain': {'name': 'GCC', 'version': '4.6.3'}, 'dummy': True, }] res = main.resolve_dependencies([deepcopy(easyconfig_dep)], self.base_easyconfig_dir) # GCC should be first (required by gzip dependency) self.assertEqual('GCC/4.6.3', res[0]['module']) self.assertEqual('name/version', res[-1]['module'])
def runTest(self): """ Test with some basic testcases (also check if he can find dependencies inside the given directory """ easyconfig = { 'spec': '_', 'module': ("name", "version"), 'dependencies': [] } res = main.resolve_dependencies([deepcopy(easyconfig)], None) self.assertEqual([easyconfig], res) easyconfig_dep = { 'spec': '_', 'module': ("name", "version"), 'dependencies': [('gzip', '1.4')] } res = main.resolve_dependencies([deepcopy(easyconfig_dep)], self.base_easyconfig_dir) # Dependency should be found self.assertEqual(len(res), 2) # here we have include a Dependency in the easyconfig list easyconfig['module'] = ("gzip", "1.4") res = main.resolve_dependencies( [deepcopy(easyconfig_dep), deepcopy(easyconfig)], None) # all dependencies should be resolved self.assertEqual(0, sum(len(ec['dependencies']) for ec in res)) # this should not resolve (cannot find gzip-1.4.eb) self.assertRaises(EasyBuildError, main.resolve_dependencies, [deepcopy(easyconfig_dep)], None) # test if dependencies of an automatically found file are also loaded easyconfig_dep['dependencies'] = [('gzip', "1.4-GCC-4.6.3")] res = main.resolve_dependencies([deepcopy(easyconfig_dep)], self.base_easyconfig_dir) # GCC should be first (required by gzip dependency) self.assertEqual(('GCC', '4.6.3'), res[0]['module']) self.assertEqual(('name', 'version'), res[-1]['module'])
def process_all_easyconfigs(self): """Process all easyconfigs and resolve inter-easyconfig dependencies.""" # all available easyconfig files easyconfigs_path = get_paths_for("easyconfigs")[0] specs = glob.glob('%s/*/*/*.eb' % easyconfigs_path) # parse all easyconfigs easyconfigs = [] for spec in specs: easyconfigs.extend(process_easyconfig(spec, validate=False)) self.ordered_specs = resolve_dependencies(easyconfigs, easyconfigs_path, force=True)
def runTest(self): """ Test with some basic testcases (also check if he can find dependencies inside the given directory """ easyconfig = { 'spec': '_', 'module': ("name", "version"), 'dependencies': [] } res = main.resolve_dependencies([deepcopy(easyconfig)], None) self.assertEqual([easyconfig], res) easyconfig_dep = { 'spec': '_', 'module': ("name", "version"), 'dependencies': [('gzip', '1.4')] } res = main.resolve_dependencies([deepcopy(easyconfig_dep)], self.base_easyconfig_dir) # Dependency should be found self.assertEqual(len(res), 2) # here we have include a Dependency in the easyconfig list easyconfig['module'] = ("gzip", "1.4") res = main.resolve_dependencies([deepcopy(easyconfig_dep), deepcopy(easyconfig)], None) # all dependencies should be resolved self.assertEqual(0, sum(len(ec['dependencies']) for ec in res)) # this should not resolve (cannot find gzip-1.4.eb) self.assertRaises(EasyBuildError, main.resolve_dependencies, [deepcopy(easyconfig_dep)], None) # test if dependencies of an automatically found file are also loaded easyconfig_dep['dependencies'] = [('gzip', "1.4-GCC-4.6.3")] res = main.resolve_dependencies([deepcopy(easyconfig_dep)], self.base_easyconfig_dir) # GCC should be first (required by gzip dependency) self.assertEqual(('GCC', '4.6.3'), res[0]['module']) self.assertEqual(('name', 'version'), res[-1]['module'])
def process_all_easyconfigs(self): """Process all easyconfigs and resolve inter-easyconfig dependencies.""" # all available easyconfig files easyconfigs_path = get_paths_for("easyconfigs")[0] specs = glob.glob('%s/*/*/*.eb' % easyconfigs_path) # parse all easyconfigs easyconfigs = [] for spec in specs: easyconfigs.extend(process_easyconfig(spec, build_options={'validate': False})) build_options = { 'robot_path': easyconfigs_path, 'force': True, } self.ordered_specs = resolve_dependencies(easyconfigs, build_options=build_options)
def process_all_easyconfigs(self): """Process all easyconfigs and resolve inter-easyconfig dependencies.""" # all available easyconfig files easyconfigs_path = get_paths_for("easyconfigs")[0] specs = glob.glob('%s/*/*/*.eb' % easyconfigs_path) # parse all easyconfigs easyconfigs = [] for spec in specs: easyconfigs.extend( process_easyconfig(spec, build_options={'validate': False})) build_options = { 'robot_path': easyconfigs_path, 'force': True, } self.ordered_specs = resolve_dependencies(easyconfigs, build_options=build_options)
def runTest(self): """ Test with some basic testcases (also check if he can find dependencies inside the given directory """ easyconfig = { 'spec': '_', 'module': 'name/version', 'dependencies': [] } res = main.resolve_dependencies([deepcopy(easyconfig)], None) self.assertEqual([easyconfig], res) easyconfig_dep = { 'ec': { 'name': 'foo', 'version': '1.2.3', 'versionsuffix': '', 'toolchain': { 'name': 'dummy', 'version': 'dummy' }, }, 'spec': '_', 'module': 'name/version', 'dependencies': [{ 'name': 'gzip', 'version': '1.4', 'versionsuffix': '', 'toolchain': { 'name': 'dummy', 'version': 'dummy' }, 'dummy': True, }], 'parsed': True, } res = main.resolve_dependencies([deepcopy(easyconfig_dep)], self.base_easyconfig_dir) # Dependency should be found self.assertEqual(len(res), 2) # here we have include a Dependency in the easyconfig list easyconfig['module'] = 'gzip/1.4' res = main.resolve_dependencies( [deepcopy(easyconfig_dep), deepcopy(easyconfig)], None) # all dependencies should be resolved self.assertEqual(0, sum(len(ec['dependencies']) for ec in res)) # this should not resolve (cannot find gzip-1.4.eb) self.assertRaises(EasyBuildError, main.resolve_dependencies, [deepcopy(easyconfig_dep)], None) # test if dependencies of an automatically found file are also loaded easyconfig_dep['dependencies'] = [{ 'name': 'gzip', 'version': '1.4', 'versionsuffix': '', 'toolchain': { 'name': 'GCC', 'version': '4.6.3' }, 'dummy': True, }] res = main.resolve_dependencies([deepcopy(easyconfig_dep)], self.base_easyconfig_dir) # GCC should be first (required by gzip dependency) self.assertEqual('GCC/4.6.3', res[0]['module']) self.assertEqual('name/version', res[-1]['module'])