-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
Closed
Labels
testsTests in the Lib/test dirTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
All this code is not covered:
Lines 1712 to 1737 in b652d40
def main(): | |
import argparse | |
parser = argparse.ArgumentParser(prog='python -m ast') | |
parser.add_argument('infile', type=argparse.FileType(mode='rb'), nargs='?', | |
default='-', | |
help='the file to parse; defaults to stdin') | |
parser.add_argument('-m', '--mode', default='exec', | |
choices=('exec', 'single', 'eval', 'func_type'), | |
help='specify what kind of code must be parsed') | |
parser.add_argument('--no-type-comments', default=True, action='store_false', | |
help="don't add information about type comments") | |
parser.add_argument('-a', '--include-attributes', action='store_true', | |
help='include attributes such as line numbers and ' | |
'column offsets') | |
parser.add_argument('-i', '--indent', type=int, default=3, | |
help='indentation of nodes (number of spaces)') | |
args = parser.parse_args() | |
with args.infile as infile: | |
source = infile.read() | |
tree = parse(source, args.infile.name, args.mode, type_comments=args.no_type_comments) | |
print(dump(tree, include_attributes=args.include_attributes, indent=args.indent)) | |
if __name__ == '__main__': | |
main() |
Proof: https://github.com/python/cpython/blob/b652d40f1c88fcd8595cd401513f6b7f8e499471/Lib/test/test_ast.py
If I remove def main
, tests still pass.
So, my proposal is: add a simple test case that ensures that ast.main
is there. I don't think that we need any fancy stuff. ast.main
is only a thin wrapper around ast.parse
and ast.dump
which are fully tested on their own.
Linked PRs
Metadata
Metadata
Assignees
Labels
testsTests in the Lib/test dirTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error