def test_make_module_req(self): """Testcase for make_module_req""" self.contents = '\n'.join([ 'name = "pi"', 'version = "3.14"', 'homepage = "http://example.com"', 'description = "test easyconfig"', 'toolchain = {"name":"dummy", "version": "dummy"}', ]) self.writeEC() eb = EasyBlock(EasyConfig(self.eb_file)) eb.installdir = config.install_path() # create fake directories and files that should be guessed os.makedirs(eb.installdir) open(os.path.join(eb.installdir, 'foo.jar'), 'w').write('foo.jar') open(os.path.join(eb.installdir, 'bla.jar'), 'w').write('bla.jar') os.mkdir(os.path.join(eb.installdir, 'bin')) os.mkdir(os.path.join(eb.installdir, 'share')) os.mkdir(os.path.join(eb.installdir, 'share', 'man')) # this is not a path that should be picked up os.mkdir(os.path.join(eb.installdir, 'CPATH')) guess = eb.make_module_req() self.assertTrue(re.search("^prepend-path\s+CLASSPATH\s+\$root/bla.jar$", guess, re.M)) self.assertTrue(re.search("^prepend-path\s+CLASSPATH\s+\$root/foo.jar$", guess, re.M)) self.assertTrue(re.search("^prepend-path\s+MANPATH\s+\$root/share/man$", guess, re.M)) self.assertTrue(re.search("^prepend-path\s+PATH\s+\$root/bin$", guess, re.M)) self.assertFalse(re.search("^prepend-path\s+CPATH\s+.*$", guess, re.M)) # cleanup eb.close_log() os.remove(eb.logfile)
def test_make_module_req(self): """Testcase for make_module_req""" self.contents = '\n'.join([ 'easyblock = "ConfigureMake"', 'name = "pi"', 'version = "3.14"', 'homepage = "http://example.com"', 'description = "test easyconfig"', 'toolchain = {"name":"dummy", "version": "dummy"}', ]) self.writeEC() eb = EasyBlock(EasyConfig(self.eb_file)) eb.installdir = config.install_path() # create fake directories and files that should be guessed os.makedirs(eb.installdir) open(os.path.join(eb.installdir, 'foo.jar'), 'w').write('foo.jar') open(os.path.join(eb.installdir, 'bla.jar'), 'w').write('bla.jar') os.mkdir(os.path.join(eb.installdir, 'bin')) os.mkdir(os.path.join(eb.installdir, 'share')) os.mkdir(os.path.join(eb.installdir, 'share', 'man')) # this is not a path that should be picked up os.mkdir(os.path.join(eb.installdir, 'CPATH')) guess = eb.make_module_req() if get_module_syntax() == 'Tcl': self.assertTrue(re.search(r"^prepend-path\s+CLASSPATH\s+\$root/bla.jar$", guess, re.M)) self.assertTrue(re.search(r"^prepend-path\s+CLASSPATH\s+\$root/foo.jar$", guess, re.M)) self.assertTrue(re.search(r"^prepend-path\s+MANPATH\s+\$root/share/man$", guess, re.M)) self.assertTrue(re.search(r"^prepend-path\s+PATH\s+\$root/bin$", guess, re.M)) self.assertFalse(re.search(r"^prepend-path\s+CPATH\s+.*$", guess, re.M)) elif get_module_syntax() == 'Lua': self.assertTrue(re.search(r'^prepend_path\("CLASSPATH", pathJoin\(root, "bla.jar"\)\)$', guess, re.M)) self.assertTrue(re.search(r'^prepend_path\("CLASSPATH", pathJoin\(root, "foo.jar"\)\)$', guess, re.M)) self.assertTrue(re.search(r'^prepend_path\("MANPATH", pathJoin\(root, "share/man"\)\)$', guess, re.M)) self.assertTrue(re.search(r'^prepend_path\("PATH", pathJoin\(root, "bin"\)\)$', guess, re.M)) self.assertFalse(re.search(r'^prepend_path\("CPATH", .*\)$', guess, re.M)) else: self.assertTrue(False, "Unknown module syntax: %s" % get_module_syntax()) # cleanup eb.close_log() os.remove(eb.logfile)
def test_make_module_req(self): """Testcase for make_module_req""" self.contents = '\n'.join([ 'easyblock = "ConfigureMake"', 'name = "pi"', 'version = "3.14"', 'homepage = "http://example.com"', 'description = "test easyconfig"', 'toolchain = {"name":"dummy", "version": "dummy"}', ]) self.writeEC() eb = EasyBlock(EasyConfig(self.eb_file)) eb.installdir = config.install_path() # create fake directories and files that should be guessed os.makedirs(eb.installdir) open(os.path.join(eb.installdir, 'foo.jar'), 'w').write('foo.jar') open(os.path.join(eb.installdir, 'bla.jar'), 'w').write('bla.jar') os.mkdir(os.path.join(eb.installdir, 'bin')) os.mkdir(os.path.join(eb.installdir, 'share')) os.mkdir(os.path.join(eb.installdir, 'share', 'man')) # this is not a path that should be picked up os.mkdir(os.path.join(eb.installdir, 'CPATH')) guess = eb.make_module_req() if get_module_syntax() == 'Tcl': self.assertTrue(re.search(r"^prepend-path\s+CLASSPATH\s+\$root/bla.jar$", guess, re.M)) self.assertTrue(re.search(r"^prepend-path\s+CLASSPATH\s+\$root/foo.jar$", guess, re.M)) self.assertTrue(re.search(r"^prepend-path\s+MANPATH\s+\$root/share/man$", guess, re.M)) self.assertTrue(re.search(r"^prepend-path\s+PATH\s+\$root/bin$", guess, re.M)) self.assertFalse(re.search(r"^prepend-path\s+CPATH\s+.*$", guess, re.M)) elif get_module_syntax() == 'Lua': self.assertTrue(re.search(r'^prepend_path\("CLASSPATH", pathJoin\(root, "bla.jar"\)\)$', guess, re.M)) self.assertTrue(re.search(r'^prepend_path\("CLASSPATH", pathJoin\(root, "foo.jar"\)\)$', guess, re.M)) self.assertTrue(re.search(r'^prepend_path\("MANPATH", pathJoin\(root, "share/man"\)\)$', guess, re.M)) self.assertTrue(re.search(r'^prepend_path\("PATH", pathJoin\(root, "bin"\)\)$', guess, re.M)) self.assertFalse(re.search(r'^prepend_path\("CPATH", .*\)$', guess, re.M)) else: self.assertTrue(False, "Unknown module syntax: %s" % get_module_syntax()) # check for behavior when a string value is used as dict value by make_module_req_guesses eb.make_module_req_guess = lambda: {'PATH': 'bin'} txt = eb.make_module_req() if get_module_syntax() == 'Tcl': self.assertTrue(re.match(r"^\nprepend-path\s+PATH\s+\$root/bin\n$", txt, re.M)) elif get_module_syntax() == 'Lua': self.assertTrue(re.match(r'^\nprepend_path\("PATH", pathJoin\(root, "bin"\)\)\n$', txt, re.M)) else: self.assertTrue(False, "Unknown module syntax: %s" % get_module_syntax()) # check for correct behaviour if empty string is specified as one of the values # prepend-path statements should be included for both the 'bin' subdir and the install root eb.make_module_req_guess = lambda: {'PATH': ['bin', '']} txt = eb.make_module_req() if get_module_syntax() == 'Tcl': self.assertTrue(re.search(r"\nprepend-path\s+PATH\s+\$root/bin\n", txt, re.M)) self.assertTrue(re.search(r"\nprepend-path\s+PATH\s+\$root\n", txt, re.M)) elif get_module_syntax() == 'Lua': self.assertTrue(re.search(r'\nprepend_path\("PATH", pathJoin\(root, "bin"\)\)\n', txt, re.M)) self.assertTrue(re.search(r'\nprepend_path\("PATH", root\)\n', txt, re.M)) else: self.assertTrue(False, "Unknown module syntax: %s" % get_module_syntax()) # cleanup eb.close_log() os.remove(eb.logfile)
def test_make_module_req(self): """Testcase for make_module_req""" self.contents = '\n'.join([ 'easyblock = "ConfigureMake"', 'name = "pi"', 'version = "3.14"', 'homepage = "http://example.com"', 'description = "test easyconfig"', 'toolchain = {"name":"dummy", "version": "dummy"}', ]) self.writeEC() eb = EasyBlock(EasyConfig(self.eb_file)) eb.installdir = config.install_path() # create fake directories and files that should be guessed os.makedirs(eb.installdir) open(os.path.join(eb.installdir, 'foo.jar'), 'w').write('foo.jar') open(os.path.join(eb.installdir, 'bla.jar'), 'w').write('bla.jar') os.mkdir(os.path.join(eb.installdir, 'bin')) os.mkdir(os.path.join(eb.installdir, 'share')) os.mkdir(os.path.join(eb.installdir, 'share', 'man')) # this is not a path that should be picked up os.mkdir(os.path.join(eb.installdir, 'CPATH')) guess = eb.make_module_req() if get_module_syntax() == 'Tcl': self.assertTrue( re.search(r"^prepend-path\s+CLASSPATH\s+\$root/bla.jar$", guess, re.M)) self.assertTrue( re.search(r"^prepend-path\s+CLASSPATH\s+\$root/foo.jar$", guess, re.M)) self.assertTrue( re.search(r"^prepend-path\s+MANPATH\s+\$root/share/man$", guess, re.M)) self.assertTrue( re.search(r"^prepend-path\s+PATH\s+\$root/bin$", guess, re.M)) self.assertFalse( re.search(r"^prepend-path\s+CPATH\s+.*$", guess, re.M)) elif get_module_syntax() == 'Lua': self.assertTrue( re.search( r'^prepend_path\("CLASSPATH", pathJoin\(root, "bla.jar"\)\)$', guess, re.M)) self.assertTrue( re.search( r'^prepend_path\("CLASSPATH", pathJoin\(root, "foo.jar"\)\)$', guess, re.M)) self.assertTrue( re.search( r'^prepend_path\("MANPATH", pathJoin\(root, "share/man"\)\)$', guess, re.M)) self.assertTrue( re.search(r'^prepend_path\("PATH", pathJoin\(root, "bin"\)\)$', guess, re.M)) self.assertFalse( re.search(r'^prepend_path\("CPATH", .*\)$', guess, re.M)) else: self.assertTrue(False, "Unknown module syntax: %s" % get_module_syntax()) # check for behavior when a string value is used as dict value by make_module_req_guesses eb.make_module_req_guess = lambda: {'PATH': 'bin'} txt = eb.make_module_req() if get_module_syntax() == 'Tcl': self.assertTrue( re.match(r"^\nprepend-path\s+PATH\s+\$root/bin\n$", txt, re.M)) elif get_module_syntax() == 'Lua': self.assertTrue( re.match( r'^\nprepend_path\("PATH", pathJoin\(root, "bin"\)\)\n$', txt, re.M)) else: self.assertTrue(False, "Unknown module syntax: %s" % get_module_syntax()) # check for correct behaviour if empty string is specified as one of the values # prepend-path statements should be included for both the 'bin' subdir and the install root eb.make_module_req_guess = lambda: {'PATH': ['bin', '']} txt = eb.make_module_req() if get_module_syntax() == 'Tcl': self.assertTrue( re.search(r"\nprepend-path\s+PATH\s+\$root/bin\n", txt, re.M)) self.assertTrue( re.search(r"\nprepend-path\s+PATH\s+\$root\n", txt, re.M)) elif get_module_syntax() == 'Lua': self.assertTrue( re.search( r'\nprepend_path\("PATH", pathJoin\(root, "bin"\)\)\n', txt, re.M)) self.assertTrue( re.search(r'\nprepend_path\("PATH", root\)\n', txt, re.M)) else: self.assertTrue(False, "Unknown module syntax: %s" % get_module_syntax()) # cleanup eb.close_log() os.remove(eb.logfile)