Exemplo n.º 1
0
def generate_coverage(func, path, *args, **kwds):
    """
    Generates code coverage for the function
    and places the results in the path
    """
    import figleaf
    from figleaf import annotate_html

    if os.path.isdir(path):
        shutil.rmtree(path)

    # execute the function itself
    return_vals = func(*args, **kwds)

    logger.info('generating coverage')
    coverage = figleaf.get_data().gather_files()
    annotate_html.prepare_reportdir(path)

    # skip python modules and the test modules
    regpatt = lambda patt: re.compile(patt, re.IGNORECASE)
    patterns = map(regpatt, ['python', 'tests'])
    annotate_html.report_as_html(coverage,
                                 path,
                                 exclude_patterns=patterns,
                                 files_list='')

    return return_vals
Exemplo n.º 2
0
def generate_coverage(func, path, *args, **kwds):
    """
    Generates code coverage for the function 
    and places the results in the path
    """
    import figleaf
    from figleaf import annotate_html

    if os.path.isdir(path):
        shutil.rmtree(path)       
    
    # execute the function itself
    return_vals = func(*args, **kwds)
    
    logger.info('generating coverage')
    coverage = figleaf.get_data().gather_files()
    annotate_html.prepare_reportdir(path)
    
    # skip python modules and the test modules
    regpatt  = lambda patt: re.compile(patt, re.IGNORECASE)
    patterns = map(regpatt, [ 'python', 'tests' ])
    annotate_html.report_as_html(coverage, path, exclude_patterns=patterns,
                                 files_list='')

    return return_vals
Exemplo n.º 3
0
def generate_coverage(func, path, *args, **kwds):
    """
    Generates code coverage for the function 
    and places the results in the path
    """

    import figleaf
    from figleaf import annotate_html

    # Fix for figleaf misbehaving. It is adding a logger at root level
    # and that will add a handler to all subloggers (ours as well)
    # needs to be fixed in figleaf
    import logging
    root = logging.getLogger()
    # remove all root handlers
    for hand in root.handlers:
        root.removeHandler(hand)

    if os.path.isdir(path):
        shutil.rmtree(path)

    info("collecting coverage information")

    figleaf.start()
    # execute the function itself
    return_vals = func(*args, **kwds)
    figleaf.stop()

    info('generating coverage')
    coverage = figleaf.get_data().gather_files()

    annotate_html.prepare_reportdir(path)

    # skip python modules and the test modules
    regpatt = lambda patt: re.compile(patt, re.IGNORECASE)
    patterns = map(regpatt, ['python', 'tests', 'django', 'path*'])
    annotate_html.report_as_html(coverage,
                                 path,
                                 exclude_patterns=patterns,
                                 files_list='')

    return return_vals
Exemplo n.º 4
0
def generate_coverage( func, path, *args, **kwds):
    """
    Generates code coverage for the function 
    and places the results in the path
    """

    import figleaf
    from figleaf import annotate_html

    # Fix for figleaf misbehaving. It is adding a logger at root level 
    # and that will add a handler to all subloggers (ours as well)
    # needs to be fixed in figleaf
    import logging
    root = logging.getLogger()
    # remove all root handlers
    for hand in root.handlers: 
        root.removeHandler(hand)

    if os.path.isdir( path ):
        shutil.rmtree( path )       
    
    info( "collecting coverage information" )

    figleaf.start() 
    # execute the function itself
    return_vals = func( *args, **kwds)
    figleaf.stop()
    
    info( 'generating coverage' )
    coverage = figleaf.get_data().gather_files()
    
    annotate_html.prepare_reportdir( path )
    
    # skip python modules and the test modules
    regpatt  = lambda patt: re.compile( patt, re.IGNORECASE )
    patterns = map( regpatt, [ 'python', 'tests', 'django', 'path*' ] )
    annotate_html.report_as_html( coverage, path, exclude_patterns=patterns, files_list='')
    
    return return_vals