summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2019-06-26 21:40:08 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2019-06-26 21:40:08 +0200
commit1c98e0f0bfb38575cbf461cb6359895532292eb1 (patch)
treec400c6412771c38975cf2d868cbda7345fca4d24
parentcc6395bcf0e7758869c5533268d18bfe88398189 (diff)
downloadpsutil-1c98e0f0bfb38575cbf461cb6359895532292eb1.tar.gz
port more stuff
-rw-r--r--psutil/_compat.py5
-rw-r--r--psutil/tests/__init__.py27
2 files changed, 18 insertions, 14 deletions
diff --git a/psutil/_compat.py b/psutil/_compat.py
index d6b00736..41614287 100644
--- a/psutil/_compat.py
+++ b/psutil/_compat.py
@@ -48,6 +48,7 @@ if PY3:
ProcessLookupError = ProcessLookupError # NOQA
InterruptedError = InterruptedError # NOQA
ChildProcessError = ChildProcessError # NOQA
+ FileExistsError = FileExistsError # NOQA
else:
# https://github.com/PythonCharmers/python-future/blob/exceptions/
# src/future/types/exceptions/pep3151.py
@@ -100,6 +101,10 @@ else:
def ChildProcessError(inst):
return getattr(inst, 'errno', object()) == errno.ECHILD
+ @instance_checking_exception(EnvironmentError)
+ def FileExistsError(inst):
+ return getattr(inst, 'errno', object()) == errno.EEXIST
+
# --- stdlib additions
diff --git a/psutil/tests/__init__.py b/psutil/tests/__init__.py
index fc52f6ad..6c629368 100644
--- a/psutil/tests/__init__.py
+++ b/psutil/tests/__init__.py
@@ -41,6 +41,9 @@ from psutil import POSIX
from psutil import SUNOS
from psutil import WINDOWS
from psutil._common import supports_ipv6
+from psutil._compat import ChildProcessError
+from psutil._compat import FileExistsError
+from psutil._compat import FileNotFoundError
from psutil._compat import PY3
from psutil._compat import u
from psutil._compat import unicode
@@ -514,9 +517,8 @@ def reap_children(recursive=False):
# Wait for the process to terminate, to avoid zombies.
try:
subp.wait()
- except OSError as err:
- if err.errno != errno.ECHILD:
- raise
+ except ChildProcessError:
+ pass
# Terminate started pids.
while _pids_started:
@@ -710,13 +712,12 @@ def safe_rmpath(path):
while time.time() < stop_at:
try:
return fun()
+ except FileNotFoundError:
+ pass
except WindowsError as _:
err = _
- if err.errno != errno.ENOENT:
- raise
- else:
- warn("ignoring %s" % (str(err)))
- time.sleep(0.01)
+ warn("ignoring %s" % (str(err)))
+ time.sleep(0.01)
raise err
try:
@@ -729,18 +730,16 @@ def safe_rmpath(path):
fun()
else:
retry_fun(fun)
- except OSError as err:
- if err.errno != errno.ENOENT:
- raise
+ except FileNotFoundError:
+ pass
def safe_mkdir(dir):
"Convenience function for creating a directory"
try:
os.mkdir(dir)
- except OSError as err:
- if err.errno != errno.EEXIST:
- raise
+ except FileExistsError:
+ pass
@contextlib.contextmanager