diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2016-12-06 07:01:20 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2016-12-06 07:01:20 -0500 |
commit | f20056d07d88f5688b02de77ac718e26bf0e2f1c (patch) | |
tree | 197c7e92f832a6209f9d10b9f0e2862f97173d18 | |
parent | 1526e4a074388dc228221ec3b8f0bbc1459eb383 (diff) | |
download | python-coveragepy-f20056d07d88f5688b02de77ac718e26bf0e2f1c.tar.gz |
A better way to find the pth directory
-rw-r--r-- | tests/test_process.py | 32 |
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 |