コード例 #1
0
ファイル: le_util.py プロジェクト: jepler/letsencrypt
def run_script(params):
    """Run the script with the given params.

    :param list params: List of parameters to pass to Popen

    """
    try:
        proc = subprocess.Popen(params,
                                stdout=subprocess.PIPE,
                                stderr=subprocess.PIPE)

    except (OSError, ValueError):
        msg = "Unable to run the command: %s" % " ".join(params)
        logger.error(msg)
        raise errors.SubprocessError(msg)

    stdout, stderr = proc.communicate()

    if proc.returncode != 0:
        msg = "Error while running %s.\n%s\n%s" % (
            " ".join(params), stdout, stderr)
        # Enter recovery routine...
        logger.error(msg)
        raise errors.SubprocessError(msg)

    return stdout, stderr
コード例 #2
0
    def test_get_version(self, mock_script):
        mock_script.return_value = ("Server Version: Apache/2.4.2 (Debian)",
                                    "")
        self.assertEqual(self.config.get_version(), (2, 4, 2))

        mock_script.return_value = ("Server Version: Apache/2 (Linux)", "")
        self.assertEqual(self.config.get_version(), (2, ))

        mock_script.return_value = ("Server Version: Apache (Debian)", "")
        self.assertRaises(errors.PluginError, self.config.get_version)

        mock_script.return_value = (
            "Server Version: Apache/2.3{0} Apache/2.4.7".format(os.linesep),
            "")
        self.assertRaises(errors.PluginError, self.config.get_version)

        mock_script.side_effect = errors.SubprocessError("Can't find program")
        self.assertRaises(errors.PluginError, self.config.get_version)