def runTest(self): """ verify all the possible extract commands also run_cmd should work with some basic echo/exit combos """ cmd = ft.extract_cmd("test.zip") self.assertEqual("unzip -qq test.zip", cmd) cmd = ft.extract_cmd("/some/path/test.tar") self.assertEqual("tar xf /some/path/test.tar", cmd) cmd = ft.extract_cmd("test.tar.gz") self.assertEqual("tar xzf test.tar.gz", cmd) cmd = ft.extract_cmd("test.tgz") self.assertEqual("tar xzf test.tgz", cmd) cmd = ft.extract_cmd("test.bz2") self.assertEqual("bunzip2 test.bz2", cmd) cmd = ft.extract_cmd("test.tbz") self.assertEqual("tar xjf test.tbz", cmd) cmd = ft.extract_cmd("test.tar.bz2") self.assertEqual("tar xjf test.tar.bz2", cmd) (out, ec) = ft.run_cmd("echo hello") self.assertEqual(out, "hello\n") # no reason echo hello could fail self.assertEqual(ec, 0) (out, ec) = ft.run_cmd_qa("echo question", {"question":"answer"}) self.assertEqual(out, "question\n") # no reason echo hello could fail self.assertEqual(ec, 0) self.assertEqual(True, ft.run_cmd("echo hello", simple=True)) self.assertEqual(False, ft.run_cmd("exit 1", simple=True, log_all=False, log_ok=False)) name = ft.convert_name("test+test-test") self.assertEqual(name, "testplustestmintest") name = ft.convert_name("test+test-test", True) self.assertEqual(name, "TESTPLUSTESTMINTEST") errors = ft.parse_log_for_error("error failed", True) self.assertEqual(len(errors), 1) # I expect tests to be run from the base easybuild directory self.assertEqual(os.getcwd(), ft.find_base_dir())
def _generate_help_text(self): """ Generate syntax-independent help text used for `module help`. """ # General package description (mandatory) lines = self._generate_section('Description', self.app.cfg['description'], strip=True) # Package usage instructions (optional) lines.extend( self._generate_section('Usage', self.app.cfg['usage'], strip=True)) # Examples (optional) lines.extend( self._generate_section('Examples', self.app.cfg['examples'], strip=True)) # Additional information: homepage + (if available) doc paths/urls, upstream/site contact lines.extend( self._generate_section( "More information", " - Homepage: %s" % self.app.cfg['homepage'])) docpaths = self.app.cfg['docpaths'] or [] docurls = self.app.cfg['docurls'] or [] if docpaths or docurls: root_envvar = ROOT_ENV_VAR_NAME_PREFIX + convert_name( self.app.name, upper=True) lines.extend([" - Documentation:"]) lines.extend( [" - $%s/%s" % (root_envvar, path) for path in docpaths]) lines.extend([" - %s" % url for url in docurls]) for contacts_type in ['upstream', 'site']: contacts = self.app.cfg['%s_contacts' % contacts_type] if contacts: if isinstance(contacts, list): lines.append(" - %s contacts:" % contacts_type.capitalize()) lines.extend( [" - %s" % contact for contact in contacts]) else: lines.append(" - %s contact: %s" % (contacts_type.capitalize(), contacts)) # Extensions (if any) extensions = self._generate_extension_list() lines.extend( self._generate_section("Included extensions", '\n'.join(wrap(extensions, 78)))) return '\n'.join(lines)
def get_software_version(name): """ Return the software version set for a particular software name. """ environment_key = get_software_version_env_var_name(name) newname = convert_name(name, upper=True) legacy_key = "SOFTVERSION%s" % newname # keep on supporting legacy installations if environment_key in os.environ: return os.getenv(environment_key) else: return os.getenv(legacy_key)
def get_software_version(name): """ Return the software version set for a particular software name. """ env_var = get_software_version_env_var_name(name) legacy_key = "SOFTVERSION%s" % convert_name(name, upper=True) version = None if env_var in os.environ: version = os.getenv(env_var) elif legacy_key in os.environ: _log.nosupport("Legacy env var %s is being relied on!" % legacy_key, "2.0") return version
def get_software_version(name): """ Return the software version set for a particular software name. """ environment_key = get_software_version_env_var_name(name) newname = convert_name(name, upper=True) legacy_key = "SOFTVERSION%s" % newname # keep on supporting legacy installations if environment_key in os.environ: return os.getenv(environment_key) else: if legacy_key in os.environ: _log.deprecated("Legacy env var %s is being relied on!" % legacy_key, "2.0") return os.getenv(legacy_key)
def get_software_version(name): """ Return the software version set for a particular software name. """ environment_key = get_software_version_env_var_name(name) newname = convert_name(name, upper=True) legacy_key = "SOFTVERSION%s" % newname # keep on supporting legacy installations if environment_key in os.environ: return os.getenv(environment_key) else: if legacy_key in os.environ: _log.deprecated( "Legacy env var %s is being relied on!" % legacy_key, "2.0") return os.getenv(legacy_key)
def get_software_root(name, with_env_var=False): """ Return the software root set for a particular software name. """ env_var = get_software_root_env_var_name(name) legacy_key = "SOFTROOT%s" % convert_name(name, upper=True) root = None if env_var in os.environ: root = os.getenv(env_var) elif legacy_key in os.environ: _log.nosupport("Legacy env var %s is being relied on!" % legacy_key, "2.0") if with_env_var: res = (root, env_var) else: res = root return res
def get_software_root(name, with_env_var=False): """ Return the software root set for a particular software name. """ environment_key = get_software_root_env_var_name(name) newname = convert_name(name, upper=True) legacy_key = "SOFTROOT%s" % newname # keep on supporting legacy installations if environment_key in os.environ: env_var = environment_key else: env_var = legacy_key root = os.getenv(env_var) if with_env_var: return (root, env_var) else: return root
def _generate_help_text(self): """ Generate syntax-independent help text used for `module help`. """ # General package description (mandatory) lines = self._generate_section('Description', self.app.cfg['description'], strip=True) # Package usage instructions (optional) lines.extend(self._generate_section('Usage', self.app.cfg['usage'], strip=True)) # Examples (optional) lines.extend(self._generate_section('Examples', self.app.cfg['examples'], strip=True)) # Additional information: homepage + (if available) doc paths/urls, upstream/site contact lines.extend(self._generate_section("More information", " - Homepage: %s" % self.app.cfg['homepage'])) docpaths = self.app.cfg['docpaths'] or [] docurls = self.app.cfg['docurls'] or [] if docpaths or docurls: root_envvar = ROOT_ENV_VAR_NAME_PREFIX + convert_name(self.app.name, upper=True) lines.extend([" - Documentation:"]) lines.extend([" - $%s/%s" % (root_envvar, path) for path in docpaths]) lines.extend([" - %s" % url for url in docurls]) for contacts_type in ['upstream', 'site']: contacts = self.app.cfg['%s_contacts' % contacts_type] if contacts: if isinstance(contacts, list): lines.append(" - %s contacts:" % contacts_type.capitalize()) lines.extend([" - %s" % contact for contact in contacts]) else: lines.append(" - %s contact: %s" % (contacts_type.capitalize(), contacts)) # Extensions (if any) extensions = self._generate_extension_list() lines.extend(self._generate_section("Included extensions", '\n'.join(wrap(extensions, 78)))) return '\n'.join(lines)
def get_software_root(name, with_env_var=False): """ Return the software root set for a particular software name. """ environment_key = get_software_root_env_var_name(name) newname = convert_name(name, upper=True) legacy_key = "SOFTROOT%s" % newname # keep on supporting legacy installations if environment_key in os.environ: env_var = environment_key else: env_var = legacy_key if legacy_key in os.environ: _log.deprecated( "Legacy env var %s is being relied on!" % legacy_key, "2.0") root = os.getenv(env_var) if with_env_var: return (root, env_var) else: return root
def test_convert_name(self): """Test convert_name function.""" name = ft.convert_name("test+test-test") self.assertEqual(name, "testplustestmintest") name = ft.convert_name("test+test-test", True) self.assertEqual(name, "TESTPLUSTESTMINTEST")
def get_software_version_env_var_name(name): """Return name of environment variable for software root.""" newname = convert_name(name, upper=True) return ''.join([VERSION_ENV_VAR_NAME_PREFIX, newname])
def get_software_root_env_var_name(name): """Return name of environment variable for software root.""" newname = convert_name(name, upper=True) return ROOT_ENV_VAR_NAME_PREFIX + newname