Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def handleFile(self, event):
"""Load doctests from text files and modules"""
path = event.path
_root, ext = os.path.splitext(path)
if ext in self.extensions:
suite = doctest.DocFileTest(path, module_relative=False)
event.extraTests.append(suite)
return
elif not util.valid_module_name(os.path.basename(path)):
return
name, package_path = util.name_from_path(path)
util.ensure_importable(package_path)
try:
module = util.module_from_name(name)
except Exception:
# XXX log warning here?
return
if hasattr(module, '__test__') and not module.__test__:
return
try:
suite = doctest.DocTestSuite(module)
except ValueError:
# with python <= 3.5, doctest, very annoyingly, raises ValueError
# when a module has no tests.
return
event.extraTests.append(suite)
if not util.valid_module_name(filename):
# valid Python identifiers only
return
evt = events.MatchPathEvent(filename, full_path, pattern)
result = self.session.hooks.matchPath(evt)
if evt.handled:
if not result:
return
elif not self._match_path(filename, full_path, pattern):
return
if module_name is None:
module_name, package_path = util.name_from_path(full_path)
util.ensure_importable(package_path)
try:
module = util.module_from_name(module_name)
except:
yield loader.failedImport(module_name)
else:
mod_file = os.path.abspath(
getattr(module, '__file__', full_path))
realpath = os.path.splitext(mod_file)[0]
fullpath_noext = os.path.splitext(full_path)[0]
if realpath.lower() != fullpath_noext.lower():
module_dir = os.path.dirname(realpath)
mod_name = os.path.splitext(os.path.basename(full_path))[0]
expected_dir = os.path.dirname(full_path)
msg = ("%r module incorrectly imported from %r. "
"Expected %r. Is this module globally installed?"
)
def prepareSysPath(self):
"""Add code directories to sys.path"""
tld = self.topLevelDir
sd = self.startDir
if tld is None:
tld = sd
tld = os.path.abspath(tld)
util.ensure_importable(tld)
for libdir in self.libDirs:
libdir = os.path.abspath(os.path.join(tld, libdir))
if os.path.exists(libdir):
util.ensure_importable(libdir)
def prepareSysPath(self):
"""Add code directories to sys.path"""
tld = self.topLevelDir
sd = self.startDir
if tld is None:
tld = sd
tld = os.path.abspath(tld)
util.ensure_importable(tld)
for libdir in self.libDirs:
libdir = os.path.abspath(os.path.join(tld, libdir))
if os.path.exists(libdir):
util.ensure_importable(libdir)