コード例 #1
0
    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())
コード例 #2
0
    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)
コード例 #3
0
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)
コード例 #4
0
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
コード例 #5
0
ファイル: modules.py プロジェクト: nesi/easybuild-framework
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
コード例 #6
0
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)
コード例 #7
0
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)
コード例 #8
0
ファイル: modules.py プロジェクト: nesi/easybuild-framework
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
コード例 #9
0
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
コード例 #10
0
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
コード例 #11
0
    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)
コード例 #12
0
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
コード例 #13
0
 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")
コード例 #14
0
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])
コード例 #15
0
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])
コード例 #16
0
ファイル: modules.py プロジェクト: nesi/easybuild-framework
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
コード例 #17
0
 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")
コード例 #18
0
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