def output_results(results):
    """Print a formatted message containing the total number of points
    summed across a list of dictionaries with results from one or more tests

    Parameters
    ----------
    results : list of dictionaries with the following keys:
        points : int or float : points assigned based on test results
        pass : bool : passing status of test function
        description : str : test function name that was run
        message : str : custom message returned based on passing status
        traceback : AssertionError : returned from test function when pass is False

    Returns
    -------
    points : int or float
        Number of points summed across points in results list
    """
    points = 0
    for r in results:
        points += r['points']
        print("Results for test '{}':".format(r['description']))
        if r['pass']:
            print(' Pass! {msg} ({p} points)'.format(msg=r['message'], p=r[
                'points']))
        else:
            print(' Fail! {msg} ({p} points)'.format(msg=r['message'], p=r[
                'points']))
            print(' Traceback: {t}'.format(t=r['traceback']))
    return points
