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)