Exemplo n.º 1
0
 def testPrivateRunProcessWithOSError(self):
     """Test _RunProcess when subprocess returns an exception."""
     gmacpyutil.os.environ = mock.MagicMock()
     gmacpyutil.subprocess.Popen = mock.MagicMock()
     gmacpyutil.subprocess.Popen.side_effect = OSError('oops')
     with self.assertRaises(gmacpyutil.GmacpyutilException):
         gmacpyutil._RunProcess(['cmd'])
Exemplo n.º 2
0
 def testRunProcessReturnsATuple(self):
     """Test RunProcess returns a 3-tuple."""
     self.mox.StubOutWithMock(gmacpyutil, '_RunProcess')
     gmacpyutil._RunProcess(['cmd']).AndReturn(('out', 'err', 1))
     self.mox.ReplayAll()
     self.assertEqual(3, len(gmacpyutil.RunProcess(['cmd'])))
     self.mox.VerifyAll()
Exemplo n.º 3
0
 def testPrivateRunProcessWithOSError(self):
   """Test _RunProcess when subprocess returns an exception."""
   gmacpyutil.os.environ = mock.MagicMock()
   gmacpyutil.subprocess.Popen = mock.MagicMock()
   gmacpyutil.subprocess.Popen.side_effect = OSError('oops')
   with self.assertRaises(gmacpyutil.GmacpyutilException):
     gmacpyutil._RunProcess(['cmd'])
Exemplo n.º 4
0
 def testPrivateRunProcessErrorSudoPasswordAndStdinput(self):
   """Test _RunProcess fail with sudo and stdinput set."""
   self.mox.ReplayAll()
   with self.assertRaises(gmacpyutil.GmacpyutilException):
     gmacpyutil._RunProcess(['cmd'], stdinput='input', sudo=True,
                            sudo_password='******')
   self.mox.VerifyAll()
Exemplo n.º 5
0
 def testRunProcessReturnsATuple(self):
   """Test RunProcess returns a 3-tuple."""
   self.mox.StubOutWithMock(gmacpyutil, '_RunProcess')
   gmacpyutil._RunProcess(['cmd']).AndReturn(('out', 'err', 1))
   self.mox.ReplayAll()
   self.assertEqual(3, len(gmacpyutil.RunProcess(['cmd'])))
   self.mox.VerifyAll()
Exemplo n.º 6
0
 def testPrivateRunProcessErrorSudoPasswordAndStdinput(self):
     """Test _RunProcess fail with sudo and stdinput set."""
     self.mox.ReplayAll()
     with self.assertRaises(gmacpyutil.GmacpyutilException):
         gmacpyutil._RunProcess(['cmd'],
                                stdinput='input',
                                sudo=True,
                                sudo_password='******')
     self.mox.VerifyAll()
Exemplo n.º 7
0
 def testPrivateRunProcessWithTimeout(self):
     """Test _RunProcess with a timeout."""
     self.StubSetup()
     self.mox.StubOutWithMock(gmacpyutil, 'SetFileNonBlocking')
     self.mox.StubOutWithMock(gmacpyutil.select, 'select')
     mock_env = self.mox.CreateMockAnything()
     mock_stderr = self.mox.CreateMockAnything()
     mock_stdout = self.mox.CreateMockAnything()
     gmacpyutil.os.environ = mock_env
     gmacpyutil.subprocess.PIPE = 'pipe'
     mock_task = self.mox.CreateMockAnything()
     mock_task.stdout = mock_stdout
     mock_task.stderr = mock_stderr
     mock_task.returncode = 0
     mock_env.copy().AndReturn(mock_env)
     gmacpyutil.subprocess.Popen(['cmd'],
                                 stdout='pipe',
                                 stderr='pipe',
                                 stdin='pipe',
                                 env=mock_env,
                                 cwd=None).AndReturn(mock_task)
     gmacpyutil.SetFileNonBlocking(mock_task.stdout).AndReturn(None)
     gmacpyutil.SetFileNonBlocking(mock_task.stderr).AndReturn(None)
     gmacpyutil.select.select([mock_task.stdout, mock_task.stderr], [], [],
                              1.0).AndReturn(
                                  ([mock_task.stdout,
                                    mock_task.stderr], None, None))
     mock_task.poll().AndReturn(0)
     mock_task.poll().AndReturn(0)
     mock_stdout.read().AndReturn('out')
     mock_stderr.read().AndReturn('err')
     self.mox.ReplayAll()
     self.assertEqual(('out', 'err', 0),
                      gmacpyutil._RunProcess(['cmd'], timeout=2))
     self.mox.VerifyAll()
Exemplo n.º 8
0
 def testPrivateRunProcessWithTimeout(self):
   """Test _RunProcess with a timeout."""
   self.StubSetup()
   self.mox.StubOutWithMock(gmacpyutil, 'SetFileNonBlocking')
   self.mox.StubOutWithMock(gmacpyutil.select, 'select')
   mock_env = self.mox.CreateMockAnything()
   mock_stderr = self.mox.CreateMockAnything()
   mock_stdout = self.mox.CreateMockAnything()
   gmacpyutil.os.environ = mock_env
   gmacpyutil.subprocess.PIPE = 'pipe'
   mock_task = self.mox.CreateMockAnything()
   mock_task.stdout = mock_stdout
   mock_task.stderr = mock_stderr
   mock_task.returncode = 0
   mock_env.copy().AndReturn(mock_env)
   gmacpyutil.subprocess.Popen(
       ['cmd'], stdout='pipe', stderr='pipe', stdin='pipe', env=mock_env,
       cwd=None).AndReturn(mock_task)
   gmacpyutil.SetFileNonBlocking(mock_task.stdout).AndReturn(None)
   gmacpyutil.SetFileNonBlocking(mock_task.stderr).AndReturn(None)
   gmacpyutil.select.select(
       [mock_task.stdout, mock_task.stderr], [], [], 1.0).AndReturn(
           ([mock_task.stdout, mock_task.stderr], None, None))
   mock_task.poll().AndReturn(0)
   mock_task.poll().AndReturn(0)
   mock_stdout.read().AndReturn('out')
   mock_stderr.read().AndReturn('err')
   self.mox.ReplayAll()
   self.assertEqual(('out', 'err', 0), gmacpyutil._RunProcess(
       ['cmd'], timeout=2))
   self.mox.VerifyAll()
Exemplo n.º 9
0
    def testPrivateRunProcessWithEnv(self):
        """Test _RunProcess, simple command, with env."""
        self.StubSetup()
        mock_env = self.mox.CreateMockAnything()
        env_copy = {'foo': 'bar'}
        new_env = {'new': True}
        used_env = env_copy.copy()
        used_env.update(new_env)

        gmacpyutil.os.environ = mock_env
        gmacpyutil.subprocess.PIPE = 'pipe'
        mock_task = self.mox.CreateMockAnything()
        mock_env.copy().AndReturn(env_copy)
        gmacpyutil.subprocess.Popen(['cmd'],
                                    stdout='pipe',
                                    stderr='pipe',
                                    stdin='pipe',
                                    env=used_env,
                                    cwd=None).AndReturn(mock_task)
        mock_task.communicate(input=None).AndReturn(('out', 'err'))
        mock_task.returncode = 0
        self.mox.ReplayAll()
        self.assertEqual(('out', 'err', 0),
                         gmacpyutil._RunProcess(['cmd'], env={'new': True}))
        self.mox.VerifyAll()
Exemplo n.º 10
0
 def testPrivateRunProcessBackground(self):
   """Test _RunProcess, simple command, default args, in background."""
   self.StubSetup()
   mock_env = self.mox.CreateMockAnything()
   gmacpyutil.os.environ = mock_env
   gmacpyutil.subprocess.PIPE = 'pipe'
   mock_task = self.mox.CreateMockAnything()
   mock_env.copy().AndReturn(mock_env)
   gmacpyutil.subprocess.Popen(
       ['cmd'], stdout='pipe', stderr='pipe', stdin='pipe', env=mock_env,
       cwd=None).AndReturn(mock_task)
   self.mox.ReplayAll()
   self.assertEqual(mock_task,
                    gmacpyutil._RunProcess(['cmd'], background=True))
   self.mox.VerifyAll()
Exemplo n.º 11
0
 def testPrivateRunProcess(self):
   """Test _RunProcess, simple command, default args."""
   self.StubSetup()
   mock_env = self.mox.CreateMockAnything()
   gmacpyutil.os.environ = mock_env
   gmacpyutil.subprocess.PIPE = 'pipe'
   mock_task = self.mox.CreateMockAnything()
   mock_env.copy().AndReturn(mock_env)
   gmacpyutil.subprocess.Popen(
       ['cmd'], stdout='pipe', stderr='pipe', stdin='pipe', env=mock_env,
       cwd=None).AndReturn(mock_task)
   mock_task.communicate(input=None).AndReturn(('out', 'err'))
   mock_task.returncode = 0
   self.mox.ReplayAll()
   self.assertEqual(('out', 'err', 0), gmacpyutil._RunProcess(['cmd']))
   self.mox.VerifyAll()
Exemplo n.º 12
0
 def testPrivateRunProcessWithSudoAndSudoPassword(self):
   """Test _RunProcess, simple command, with sudo and sudo_password."""
   self.StubSetup()
   mock_env = self.mox.CreateMockAnything()
   gmacpyutil.os.environ = mock_env
   gmacpyutil.subprocess.PIPE = 'pipe'
   mock_task = self.mox.CreateMockAnything()
   mock_env.copy().AndReturn(mock_env)
   gmacpyutil.subprocess.Popen(
       ['sudo', '-S', 'cmd'], stdout='pipe', stderr='pipe', stdin='pipe',
       env=mock_env, cwd=None).AndReturn(mock_task)
   mock_task.communicate(input='password\n').AndReturn(('out', 'err'))
   mock_task.returncode = 0
   self.mox.ReplayAll()
   self.assertEqual(('out', 'err', 0), gmacpyutil._RunProcess(
       ['cmd'], sudo=True, sudo_password='******'))
   self.mox.VerifyAll()
Exemplo n.º 13
0
 def testPrivateRunProcessBackground(self):
     """Test _RunProcess, simple command, default args, in background."""
     self.StubSetup()
     mock_env = self.mox.CreateMockAnything()
     gmacpyutil.os.environ = mock_env
     gmacpyutil.subprocess.PIPE = 'pipe'
     mock_task = self.mox.CreateMockAnything()
     mock_env.copy().AndReturn(mock_env)
     gmacpyutil.subprocess.Popen(['cmd'],
                                 stdout='pipe',
                                 stderr='pipe',
                                 stdin='pipe',
                                 env=mock_env,
                                 cwd=None).AndReturn(mock_task)
     self.mox.ReplayAll()
     self.assertEqual(mock_task,
                      gmacpyutil._RunProcess(['cmd'], background=True))
     self.mox.VerifyAll()
Exemplo n.º 14
0
 def testPrivateRunProcess(self):
     """Test _RunProcess, simple command, default args."""
     self.StubSetup()
     mock_env = self.mox.CreateMockAnything()
     gmacpyutil.os.environ = mock_env
     gmacpyutil.subprocess.PIPE = 'pipe'
     mock_task = self.mox.CreateMockAnything()
     mock_env.copy().AndReturn(mock_env)
     gmacpyutil.subprocess.Popen(['cmd'],
                                 stdout='pipe',
                                 stderr='pipe',
                                 stdin='pipe',
                                 env=mock_env,
                                 cwd=None).AndReturn(mock_task)
     mock_task.communicate(input=None).AndReturn(('out', 'err'))
     mock_task.returncode = 0
     self.mox.ReplayAll()
     self.assertEqual(('out', 'err', 0), gmacpyutil._RunProcess(['cmd']))
     self.mox.VerifyAll()
Exemplo n.º 15
0
 def testPrivateRunProcessWithTimeoutAndWaitforWhenTimingOut(self):
     """Test _RunProcess with a timeout and waitfor that times out."""
     self.StubSetup()
     self.mox.StubOutWithMock(gmacpyutil, 'SetFileNonBlocking')
     self.mox.StubOutWithMock(gmacpyutil.os, 'kill')
     self.mox.StubOutWithMock(gmacpyutil.select, 'select')
     self.mox.StubOutWithMock(gmacpyutil.time, 'sleep')
     mock_env = self.mox.CreateMockAnything()
     mock_stderr = self.mox.CreateMockAnything()
     mock_stdout = self.mox.CreateMockAnything()
     gmacpyutil.os.environ = mock_env
     gmacpyutil.subprocess.PIPE = 'pipe'
     mock_task = self.mox.CreateMockAnything()
     mock_task.stdout = mock_stdout
     mock_task.stderr = mock_stderr
     mock_task.returncode = None
     mock_task.pid = 123
     mock_env.copy().AndReturn(mock_env)
     gmacpyutil.subprocess.Popen(['cmd'],
                                 stdout='pipe',
                                 stderr='pipe',
                                 stdin='pipe',
                                 env=mock_env,
                                 cwd=None).AndReturn(mock_task)
     gmacpyutil.SetFileNonBlocking(mock_task.stdout).AndReturn(None)
     gmacpyutil.SetFileNonBlocking(mock_task.stderr).AndReturn(None)
     gmacpyutil.select.select([mock_task.stdout, mock_task.stderr], [], [],
                              1.0).AndReturn((None, None, None))
     gmacpyutil.select.select([mock_task.stdout, mock_task.stderr], [], [],
                              1.0).AndReturn((None, None, None))
     mock_task.poll().AndReturn(None)
     mock_task.poll().AndReturn(None)
     gmacpyutil.logging.error(mox.IgnoreArg(),
                              mox.IgnoreArg()).AndReturn(None)
     gmacpyutil.logging.error(mox.IgnoreArg(),
                              mox.IgnoreArg()).AndReturn(None)
     gmacpyutil.os.kill(mock_task.pid, gmacpyutil.signal.SIGTERM)
     gmacpyutil.time.sleep(1).AndReturn(None)
     self.mox.ReplayAll()
     self.assertEqual(('', '', None),
                      gmacpyutil._RunProcess(['cmd'], timeout=2, waitfor=1))
     self.mox.VerifyAll()
Exemplo n.º 16
0
 def testPrivateRunProcessWithTimeoutAndWaitforWhenTimingOut(self):
   """Test _RunProcess with a timeout and waitfor that times out."""
   self.StubSetup()
   self.mox.StubOutWithMock(gmacpyutil, 'SetFileNonBlocking')
   self.mox.StubOutWithMock(gmacpyutil.os, 'kill')
   self.mox.StubOutWithMock(gmacpyutil.select, 'select')
   self.mox.StubOutWithMock(gmacpyutil.time, 'sleep')
   mock_env = self.mox.CreateMockAnything()
   mock_stderr = self.mox.CreateMockAnything()
   mock_stdout = self.mox.CreateMockAnything()
   gmacpyutil.os.environ = mock_env
   gmacpyutil.subprocess.PIPE = 'pipe'
   mock_task = self.mox.CreateMockAnything()
   mock_task.stdout = mock_stdout
   mock_task.stderr = mock_stderr
   mock_task.returncode = None
   mock_task.pid = 123
   mock_env.copy().AndReturn(mock_env)
   gmacpyutil.subprocess.Popen(
       ['cmd'], stdout='pipe', stderr='pipe', stdin='pipe', env=mock_env,
       cwd=None).AndReturn(mock_task)
   gmacpyutil.SetFileNonBlocking(mock_task.stdout).AndReturn(None)
   gmacpyutil.SetFileNonBlocking(mock_task.stderr).AndReturn(None)
   gmacpyutil.select.select(
       [mock_task.stdout, mock_task.stderr], [], [], 1.0).AndReturn(
           (None, None, None))
   gmacpyutil.select.select(
       [mock_task.stdout, mock_task.stderr], [], [], 1.0).AndReturn(
           (None, None, None))
   mock_task.poll().AndReturn(None)
   mock_task.poll().AndReturn(None)
   gmacpyutil.logging.error(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(None)
   gmacpyutil.logging.error(mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(None)
   gmacpyutil.os.kill(mock_task.pid, gmacpyutil.signal.SIGTERM)
   gmacpyutil.time.sleep(1).AndReturn(None)
   self.mox.ReplayAll()
   self.assertEqual(('', '', None), gmacpyutil._RunProcess(
       ['cmd'], timeout=2, waitfor=1))
   self.mox.VerifyAll()
Exemplo n.º 17
0
 def testPrivateRunProcessWithSudoAndSudoPassword(self):
     """Test _RunProcess, simple command, with sudo and sudo_password."""
     self.StubSetup()
     mock_env = self.mox.CreateMockAnything()
     gmacpyutil.os.environ = mock_env
     gmacpyutil.subprocess.PIPE = 'pipe'
     mock_task = self.mox.CreateMockAnything()
     mock_env.copy().AndReturn(mock_env)
     gmacpyutil.subprocess.Popen(['sudo', '-S', 'cmd'],
                                 stdout='pipe',
                                 stderr='pipe',
                                 stdin='pipe',
                                 env=mock_env,
                                 cwd=None).AndReturn(mock_task)
     mock_task.communicate(input='password\n').AndReturn(('out', 'err'))
     mock_task.returncode = 0
     self.mox.ReplayAll()
     self.assertEqual(('out', 'err', 0),
                      gmacpyutil._RunProcess(['cmd'],
                                             sudo=True,
                                             sudo_password='******'))
     self.mox.VerifyAll()
Exemplo n.º 18
0
  def testPrivateRunProcessWithEnv(self):
    """Test _RunProcess, simple command, with env."""
    self.StubSetup()
    mock_env = self.mox.CreateMockAnything()
    env_copy = {'foo': 'bar'}
    new_env = {'new': True}
    used_env = env_copy.copy()
    used_env.update(new_env)

    gmacpyutil.os.environ = mock_env
    gmacpyutil.subprocess.PIPE = 'pipe'
    mock_task = self.mox.CreateMockAnything()
    mock_env.copy().AndReturn(env_copy)
    gmacpyutil.subprocess.Popen(
        ['cmd'], stdout='pipe', stderr='pipe', stdin='pipe', env=used_env,
        cwd=None).AndReturn(mock_task)
    mock_task.communicate(input=None).AndReturn(('out', 'err'))
    mock_task.returncode = 0
    self.mox.ReplayAll()
    self.assertEqual(
        ('out', 'err', 0), gmacpyutil._RunProcess(['cmd'], env={'new': True}))
    self.mox.VerifyAll()
Exemplo n.º 19
0
 def testRunProcessInBackground(self):
   self.mox.StubOutWithMock(gmacpyutil, '_RunProcess')
   gmacpyutil._RunProcess(['cmd'], background=True)
   self.mox.ReplayAll()
   gmacpyutil.RunProcessInBackground(['cmd'])
   self.mox.VerifyAll()
Exemplo n.º 20
0
 def testPrivateRunProcessErrorTimeoutAndBackground(self):
     """Test _RunProcess fails with timeout and background set."""
     self.mox.ReplayAll()
     with self.assertRaises(gmacpyutil.GmacpyutilException):
         gmacpyutil._RunProcess(['cmd'], background=True, timeout=1)
     self.mox.VerifyAll()
Exemplo n.º 21
0
 def testPrivateRunProcessErrorTimeoutAndStreamOutput(self):
     """Test _RunProcess fails with timeout and stream_output set."""
     self.mox.ReplayAll()
     with self.assertRaises(gmacpyutil.GmacpyutilException):
         gmacpyutil._RunProcess(['cmd'], stream_output=True, timeout=1)
     self.mox.VerifyAll()
Exemplo n.º 22
0
 def testPrivateRunProcessErrorTimeoutIsNegative(self):
     """Test _RunProcess fails if timeout is negative."""
     self.mox.ReplayAll()
     with self.assertRaises(gmacpyutil.GmacpyutilException):
         gmacpyutil._RunProcess(['cmd'], timeout=-1)
     self.mox.VerifyAll()
Exemplo n.º 23
0
 def testPrivateRunProcessErrorWaitforWithoutTimeout(self):
     """Test _RunProcess fails if waitfor is set without timeout."""
     self.mox.ReplayAll()
     with self.assertRaises(gmacpyutil.GmacpyutilException):
         gmacpyutil._RunProcess(['cmd'], waitfor=1)
     self.mox.VerifyAll()
Exemplo n.º 24
0
 def testPrivateRunProcessErrorWaitforWithoutTimeout(self):
   """Test _RunProcess fails if waitfor is set without timeout."""
   self.mox.ReplayAll()
   with self.assertRaises(gmacpyutil.GmacpyutilException):
     gmacpyutil._RunProcess(['cmd'], waitfor=1)
   self.mox.VerifyAll()
Exemplo n.º 25
0
 def testPrivateRunProcessErrorTimeoutIsNegative(self):
   """Test _RunProcess fails if timeout is negative."""
   self.mox.ReplayAll()
   with self.assertRaises(gmacpyutil.GmacpyutilException):
     gmacpyutil._RunProcess(['cmd'], timeout=-1)
   self.mox.VerifyAll()
Exemplo n.º 26
0
 def testPrivateRunProcessErrorTimeoutAndStreamOutput(self):
   """Test _RunProcess fails with timeout and stream_output set."""
   self.mox.ReplayAll()
   with self.assertRaises(gmacpyutil.GmacpyutilException):
     gmacpyutil._RunProcess(['cmd'], stream_output=True, timeout=1)
   self.mox.VerifyAll()
Exemplo n.º 27
0
 def testPrivateRunProcessErrorTimeoutAndBackground(self):
   """Test _RunProcess fails with timeout and background set."""
   self.mox.ReplayAll()
   with self.assertRaises(gmacpyutil.GmacpyutilException):
     gmacpyutil._RunProcess(['cmd'], background=True, timeout=1)
   self.mox.VerifyAll()
Exemplo n.º 28
0
 def testRunProcessInBackground(self):
     self.mox.StubOutWithMock(gmacpyutil, '_RunProcess')
     gmacpyutil._RunProcess(['cmd'], background=True)
     self.mox.ReplayAll()
     gmacpyutil.RunProcessInBackground(['cmd'])
     self.mox.VerifyAll()