def __init__(self, cmd, user=None, host="localhost", workdir=os.curdir, timeout=MAX_TIMEOUT): """ :param cmd: Command string :param user: User to run command :param host: Host to run command :param workdir: Working directory in which command runs :param timeout: Time out in seconds """ assert _is_valid_timeout(timeout), "Invalid timeout: " + str(timeout) self.user = E.get_username() if user is None else user self.host = host self.timeout = timeout if U.is_local(host): if "~" in workdir: workdir = os.path.expanduser(workdir) else: cmd = "ssh -o ConnectTimeout=%d %s@%s 'cd %s && %s'" % \ (MIN_TIMEOUT, user, host, workdir, cmd) logging.debug("Remote host. Rewrote cmd to " + cmd) workdir = os.curdir self.cmd = cmd self.workdir = workdir self.cmd_str = "%s [%s]" % (cmd, workdir) self.proc = None self.returncode = None
def test_20_is_local(self): self.assertTrue(TT.is_local("localhost")) self.assertTrue(TT.is_local("localhost.localdomain")) self.assertFalse(TT.is_local("repo-server.example.com")) self.assertFalse(TT.is_local("127.0.0.1")) # special case