summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2016-12-06 07:01:20 -0500
committerNed Batchelder <ned@nedbatchelder.com>2016-12-06 07:01:20 -0500
commitf20056d07d88f5688b02de77ac718e26bf0e2f1c (patch)
tree197c7e92f832a6209f9d10b9f0e2862f97173d18
parent1526e4a074388dc228221ec3b8f0bbc1459eb383 (diff)
downloadpython-coveragepy-f20056d07d88f5688b02de77ac718e26bf0e2f1c.tar.gz
A better way to find the pth directory
-rw-r--r--tests/test_process.py32
1 files changed, 18 insertions, 14 deletions
diff --git a/tests/test_process.py b/tests/test_process.py
index 8ff9fbc..0aaedeb 100644
--- a/tests/test_process.py
+++ b/tests/test_process.py
@@ -1079,18 +1079,23 @@ def possible_pth_dirs():
yield distutils.sysconfig.get_python_lib()
-# Find the writable pth directory
-for pth_dir in possible_pth_dirs(): # pragma: part covered
- try_it = os.path.join(pth_dir, "touch.it")
- with open(try_it, "w") as f:
- try:
- f.write("foo")
- PTH_DIR = pth_dir
- break
- except (IOError, OSError): # pragma: not covered
- pass
-else: # pragma: not covered
- PTH_DIR = None
+def find_writable_pth_directory():
+ """Find a place to write a .pth file."""
+ for pth_dir in possible_pth_dirs(): # pragma: part covered
+ try_it = os.path.join(pth_dir, "touch_{}.it".format(WORKER))
+ with open(try_it, "w") as f:
+ try:
+ f.write("foo")
+ except (IOError, OSError): # pragma: not covered
+ continue
+
+ os.remove(try_it)
+ return pth_dir
+
+ return None
+
+WORKER = os.environ.get('PYTEST_XDIST_WORKER', '')
+PTH_DIR = find_writable_pth_directory()
class ProcessCoverageMixin(object):
@@ -1102,8 +1107,7 @@ class ProcessCoverageMixin(object):
# Create the .pth file.
self.assert_(PTH_DIR)
pth_contents = "import coverage; coverage.process_startup()\n"
- worker = os.environ.get('PYTEST_XDIST_WORKER', '')
- pth_path = os.path.join(PTH_DIR, "subcover_{0}.pth".format(worker))
+ pth_path = os.path.join(PTH_DIR, "subcover_{0}.pth".format(WORKER))
with open(pth_path, "w") as pth:
pth.write(pth_contents)
self.pth_path = pth_path