示例#1
0
    def __init__(self,
                 task,
                 cmdline,
                 stdout=None,
                 stderr=None,
                 expected=DEFAULT,
                 timeout=DEFAULT,
                 signal=None,
                 cwd=None,
                 env={}):

        self._returncode = None
        self.interpolator = Interpolator()
        self.cmdline = self.interpolator.apply(checked_type(str, cmdline))

        self._set_expected(expected)
        super(Command, self).__init__(task)

        self._stdout = self.interpolator.apply(stdout)
        self._stderr = self.interpolator.apply(stderr)

        self._set_cwd(cwd)

        self.tinit = self.tend = None

        self._set_timeout(timeout)
        self._set_signal(signal)
        self._set_env(env)

        self.sp = None
        self._enable_outs_if_requested()

        if self.timeout is None and not self.task.detach:
            self.log.warning(
                '%s$name %sNo timeout command in a non detached task could block forever!%s',
                INDENTST,
                term().bold_red,
                term().normal)
示例#2
0
文件: task.py 项目: davidvilla/prego3
 def set_reason(self, status, reason):
     self.status = status
     self.reason = checked_type(Assertion, reason)
     reason.log_status()
示例#3
0
 def __init__(self, name):
     self.name = checked_type(str, name)
示例#4
0
 def _set_env(self, env):
     self.env = os.environ.copy()
     context_env = checked_type(dict, gvars.context.get('env', {}))
     self.env.update(context_env)
     self.env.update((str(k), str(v)) for k, v in env.items())
示例#5
0
 def _set_signal(self, signal):
     signum = signal or gvars.context.get('signal', SIGTERM)
     self.signal = checked_type(int, signum)
示例#6
0
 def _set_timeout(self, timeout):
     if timeout == DEFAULT:
         timeout = gvars.context.get('timeout', 5)
     self.timeout = checked_type((int, NoneType), timeout)
示例#7
0
 def _set_expected(self, expected):
     if expected == DEFAULT:
         expected = gvars.context.get('expected', 0)
     self.expected = checked_type((int, NoneType), expected)
示例#8
0
 def _set_cwd(self, cwd):
     cwd = cwd or gvars.context.get('cwd', '.')
     self.cwd = self.interpolator.apply(checked_type(str, cwd))
示例#9
0
 def _matches(self, cmd):
     self.cmd = checked_type(Command, cmd)
     return hamcrest.is_(self.expected).matches(cmd.elapsed())
示例#10
0
 def _matches(self, cmd):
     self.cmd = checked_type(Command, cmd)
     return self.cmd.returncode == self.expected
示例#11
0
 def from_fd(cls, fd):
     "Creates prego.File from standard python file descriptor"
     fd = checked_type(file_types, fd)
     assert not fd.closed, fd
     return File(fd.name, fd)
示例#12
0
 def __init__(self, path, fd=None):
     self.path = Interpolator().apply(checked_type(str, path))
     self.fd = fd