def METHOD_NAME():
    parser = argparse.ArgumentParser()
    parser.add_argument('--list-stages', dest='list', action='store_true')
    parser.add_argument('stage', nargs='*', default=STAGES,
                        help='One of %s'%STAGES)
    args = parser.parse_args()
    # Check for list
    if args.list:
        for s in STAGES:
            print(s)
        sys.exit(0)
    # Check validity of stages
    for s in args.stage:
        if s not in STAGES:
            print("Invalid stage '%s' (choose from %s)" % (s, STAGES))
            sys.exit(1)
    # Run the stages
    all_passed = True
    for s in args.stage:
        passed = run_stage(s)
        if not passed:
            print("!!! Stage %s failed !!!" % (s,))
        all_passed &= passed
    if not all_passed:
        print("!!! One or more test stages failed !!!")
        sys.exit(1)