[exception handling] Fix case the current working directory (CWD) gets deleted during testing.

Fixes #1235.
This commit is contained in:
marscher
2016-06-07 15:43:05 +02:00
committed by Martin K. Scherer
parent 70fdab4cfa
commit 09d163aa3a
5 changed files with 30 additions and 5 deletions

View File

@@ -2,7 +2,6 @@ import sys
from inspect import CO_VARARGS, CO_VARKEYWORDS
import py
builtin_repr = repr
reprlib = py.builtin._tryimport('repr', 'reprlib')
@@ -35,12 +34,16 @@ class Code(object):
def path(self):
""" return a path object pointing to source code (note that it
might not point to an actually existing file). """
p = py.path.local(self.raw.co_filename)
# maybe don't try this checking
if not p.check():
try:
p = py.path.local(self.raw.co_filename)
# maybe don't try this checking
if not p.check():
raise OSError("py.path check failed.")
except OSError:
# XXX maybe try harder like the weird logic
# in the standard lib [linecache.updatecache] does?
p = self.raw.co_filename
return p
@property