ptestlib
index
/home/pfeiffer/project-shared/publicize/bii_scripts-top/bii_scripts/lib/python/bii_scripts/ptestlib.py

a module providing routines for doctest testcode.
 
This module provides functions that are useful if doctest
testcode becomes a bit more complicated.
 
Here is a list of functions:
 
inittestdir     -- set up a directory for tests. This is needed
                   if files are created by the testcode. The test directory
                   can be removed later with cleanuptestdir()
 
testdir         -- return the name of the test-directory that was created
                   as a complete path.
 
pjoin           -- this simply calls os.path.join, it joins a list of
                   strings to a complete path.
 
tjoin           -- this returns pjoin(testdirname(),<args>), it joins
                   strings to a complete path, prepending the name
                   of the test directory.
 
mkdir           -- this creates a new sub-directory within the test 
                   directory.
 
rename          -- this renames a file or directory within the test
                   directory.
 
mkfile          -- creates a file with arbitrary text in the test
                   directory.
 
catfile         -- print the contents of a file to the console.
 
rewritefile     -- rewrites a file in the test directory with
                   arbitrary text
 
rm_rf           -- recursively delete a directory or file in the 
                   test directory
 
cleanuptestdir  -- remove the test directory and all it's contents
 
dictprint       -- print a dictionary in a sorted way 
 
matches         -- test if a string matches a regular expression
 
system          -- execute a system command and possibly return 
                   it's output
 
msg             -- print a message to the user by writing to stderr. This
                   message can be seen on the terminal while the testcode
                   is executed.

 
Modules
       
os
re
subprocess
sys
tempfile

 
Functions
       
catfile(filename)
print the contents of a file in the temp-directory to the console.
cleanuptestdir()
remove the test directory and all it's contents.
dictprint(d)
prints a dict in a sorted way.
 
parameters:
    d  --  the dictionary to print
 
Here is an example of a typical output:
>>> ptestlib.dictprint({"A":1,"B":2})
{
  'A':1,
  'B':2
}
inittestdir(dir=None)
sets up a directory for tests.
 
parameters:
  dir   -- the directory where the test-directory is created.
           If this parameter is omitted, <tmpdir> is taken as 
           directory, this is usually "/tmp".
 
Example:
inittestdir(tmpdir)
ls(dir='')
do an ls in the test directory.
matches(rx, str, rx_flags=0)
returns True if the string matches a regular expression.
 
parameters:
    rx       -- the regular expression as string
    str      -- the string to match
    rx_flags -- optional flags for the regular expression
returns:
    True if the string matches, False otherwise
mkdir(dir)
create a directory within tempdir.
 
parameters:
    dir  -- the name of the directory, a simple
            name not a path
mkfile(text, filename=None)
create a file with a given text.
 
parameters:
    text      --  content of the file
    filename  --  the name of the file in the test directory.
                  If this parameter is omitted, a filename is generated.
 
returns:
    the complete path of the file (the path that includes
    the name of the test directory)
msg(st)
prints a message to the user.
 
This is especially useful when the test
takes a long time.
 
parameters:
    st   -- the string to print
pjoin(a, *b)
joins path components.
 
parameters:
    a       -- first element of the path
    b       -- all following elements of the path
               (an iterable)
rename(old, new)
renames a file or directory in the test directory.
 
parameters:
    old  -- the old name of the file or path in the test directory
    new  -- the new name of the file or path in the test directory
rewritefile(text, filename)
rewrite a file with a given text.
 
parameters:
    text      --  content of the file
    filename  --  the name of the file in the test directory.
 
returns:
    the complete path of the file
rm_rf(d)
delete files or diretories within test dir.
 
parameters:
    d  -- the name of the file or directory in the test directory
system(cmd, catch_stdout=True)
execute a command.
 
execute a command and return it's output.
parameters:
    cmd           -- the command as string
    catch_stdout  -- if True, catch stdout of the 
                     program an return it as a string
 
possible exceptions:
    IOError(errcode,stderr)
    OSError(errno,strerr)
    ValueError
testdirname()
returns the test directory.
 
This function returns the complete path of the
test directory.
tjoin(*b)
joins path components with testdir() prefix.
 
parameters:
   b    -- the elements of the path, an iterable
           of string elements

 
Data
        testdir = None
tmpdir = '/tmp'