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