"""Utilities for testing code. """ # Required modules and packages # Standard Python lib import os import sys # From this project from IPython.tools import utils # path to our own installation, so we can find source files under this. TEST_PATH = os.path.dirname(os.path.abspath(__file__)) # Global flag, used by vprint VERBOSE = '-v' in sys.argv or '--verbose' in sys.argv ########################################################################## # Code begins # Some utility functions def vprint(*args): """Print-like function which relies on a global VERBOSE flag.""" if not VERBOSE: return write = sys.stdout.write for item in args: write(str(item)) write('\n') sys.stdout.flush() def test_path(path): """Return a path as a subdir of the test package. This finds the correct path of the test package on disk, and prepends it to the input path.""" return os.path.join(TEST_PATH,path) def fullPath(startPath,files): """Make full paths for all the listed files, based on startPath. Only the base part of startPath is kept, since this routine is typically used with a script's __file__ variable as startPath. The base of startPath is then prepended to all the listed files, forming the output list. :Parameters: startPath : string Initial path to use as the base for the results. This path is split using os.path.split() and only its first component is kept. files : string or list One or more files. :Examples: >>> fullPath('/foo/bar.py',['a.txt','b.txt']) ['/foo/a.txt', '/foo/b.txt'] >>> fullPath('/foo',['a.txt','b.txt']) ['/a.txt', '/b.txt'] If a single file is given, the output is still a list: >>> fullPath('/foo','a.txt') ['/a.txt'] """ files = utils.list_strings(files) base = os.path.split(startPath)[0] return [ os.path.join(base,f) for f in files ]