100100import time
101101import urllib .parse
102102import copy
103+ import argparse
104+
103105
104106# Default error message template
105107DEFAULT_ERROR_MESSAGE = """\
@@ -1173,18 +1175,13 @@ def run_cgi(self):
11731175
11741176
11751177def test (HandlerClass = BaseHTTPRequestHandler ,
1176- ServerClass = HTTPServer , protocol = "HTTP/1.0" ):
1178+ ServerClass = HTTPServer , protocol = "HTTP/1.0" , port = 8000 ):
11771179 """Test the HTTP request handler class.
11781180
11791181 This runs an HTTP server on port 8000 (or the first command line
11801182 argument).
11811183
11821184 """
1183-
1184- if sys .argv [1 :]:
1185- port = int (sys .argv [1 ])
1186- else :
1187- port = 8000
11881185 server_address = ('' , port )
11891186
11901187 HandlerClass .protocol_version = protocol
@@ -1200,4 +1197,15 @@ def test(HandlerClass = BaseHTTPRequestHandler,
12001197 sys .exit (0 )
12011198
12021199if __name__ == '__main__' :
1203- test (HandlerClass = SimpleHTTPRequestHandler )
1200+ parser = argparse .ArgumentParser ()
1201+ parser .add_argument ('--cgi' , action = 'store_true' ,
1202+ help = 'Run as CGI Server' )
1203+ parser .add_argument ('port' , action = 'store' ,
1204+ default = 8000 , type = int ,
1205+ nargs = '?' ,
1206+ help = 'Specify alternate port [default: 8000]' )
1207+ args = parser .parse_args ()
1208+ if args .cgi :
1209+ test (HandlerClass = CGIHTTPRequestHandler , port = args .port )
1210+ else :
1211+ test (HandlerClass = SimpleHTTPRequestHandler , port = args .port )
0 commit comments