summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2015-06-20 03:29:58 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2015-06-20 03:29:58 +0200
commit2214f431217ffbd6af1d76eadd100df64ccdaffb (patch)
treea0cdea6ae9cf8b7c0b65e66e960a27e923ef62bb
parent4bd1596035b2d0b1beb795b98dce662054639d48 (diff)
downloadpsutil-2214f431217ffbd6af1d76eadd100df64ccdaffb.tar.gz
test we are able to instantiate Process() in case of AD and zombie process
-rw-r--r--test/test_psutil.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/test_psutil.py b/test/test_psutil.py
index 0db9beb2..8cda3691 100644
--- a/test/test_psutil.py
+++ b/test/test_psutil.py
@@ -46,6 +46,10 @@ try:
import ipaddress # python >= 3.3
except ImportError:
ipaddress = None
+try:
+ from unittest import mock # py3
+except ImportError:
+ import mock # requires "pip install mock"
import psutil
from psutil._compat import PY3, callable, long, unicode
@@ -2685,6 +2689,22 @@ class TestMisc(unittest.TestCase):
module = imp.load_source('setup', setup_py)
self.assertRaises(SystemExit, module.setup)
+ def test_ad_on_process_creation(self):
+ # We are supposed to be able to instantiate Process also in case
+ # of zombie processes or access denied.
+ with mock.patch.object(psutil.Process, 'create_time',
+ side_effect=psutil.AccessDenied) as meth:
+ psutil.Process()
+ assert meth.called
+ with mock.patch.object(psutil.Process, 'create_time',
+ side_effect=psutil.ZombieProcess(1)) as meth:
+ psutil.Process()
+ assert meth.called
+ with mock.patch.object(psutil.Process, 'create_time',
+ side_effect=ValueError) as meth:
+ with self.assertRaises(ValueError):
+ psutil.Process()
+
# ===================================================================
# --- Example script tests