Mercurial > hg
changeset 35780:32317f8bbe2a
tests: use argparse in get-with-headers.py
I'm about to add another flag and I don't want to deal with this
organic, artisanal argument parser.
Differential Revision: https://phab.mercurial-scm.org/D1920
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sat, 20 Jan 2018 14:59:08 -0800 |
parents | eefabd9ed3e1 |
children | c6ef8e841873 |
files | tests/get-with-headers.py |
diffstat | 1 files changed, 17 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/get-with-headers.py Sun Jan 21 17:11:31 2018 -0800 +++ b/tests/get-with-headers.py Sat Jan 20 14:59:08 2018 -0800 @@ -5,6 +5,7 @@ from __future__ import absolute_import, print_function +import argparse import json import os import sys @@ -22,25 +23,21 @@ except ImportError: pass -twice = False -if '--twice' in sys.argv: - sys.argv.remove('--twice') - twice = True -headeronly = False -if '--headeronly' in sys.argv: - sys.argv.remove('--headeronly') - headeronly = True -formatjson = False -if '--json' in sys.argv: - sys.argv.remove('--json') - formatjson = True +parser = argparse.ArgumentParser() +parser.add_argument('--twice', action='store_true') +parser.add_argument('--headeronly', action='store_true') +parser.add_argument('--json', action='store_true') +parser.add_argument('--hgproto') +parser.add_argument('host') +parser.add_argument('path') +parser.add_argument('show', nargs='*') -hgproto = None -if '--hgproto' in sys.argv: - idx = sys.argv.index('--hgproto') - hgproto = sys.argv[idx + 1] - sys.argv.pop(idx) - sys.argv.pop(idx) +args = parser.parse_args() + +twice = args.twice +headeronly = args.headeronly +formatjson = args.json +hgproto = args.hgproto tag = None def request(host, path, show): @@ -83,9 +80,9 @@ return response.status -status = request(sys.argv[1], sys.argv[2], sys.argv[3:]) +status = request(args.host, args.path, args.show) if twice: - status = request(sys.argv[1], sys.argv[2], sys.argv[3:]) + status = request(args.host, args.path, args.show) if 200 <= status <= 305: sys.exit(0)