import sys
-import BaseHTTPServer
-from SimpleHTTPServer import SimpleHTTPRequestHandler
+try:
+ from http.server import HTTPServer, SimpleHTTPRequestHandler
+except ImportError:
+ from BaseHTTPServer import HTTPServer
+ from SimpleHTTPServer import SimpleHTTPRequestHandler
-HandlerClass = SimpleHTTPRequestHandler
-ServerClass = BaseHTTPServer.HTTPServer
-Protocol = "HTTP/1.0"
-
-if sys.argv[1:]:
- port = int(sys.argv[1])
-else:
- port = 0
-server_address = ('127.0.0.1', port)
-HandlerClass.protocol_version = Protocol
-httpd = ServerClass(server_address, HandlerClass)
+HandlerClass = SimpleHTTPRequestHandler
+HandlerClass.protocol_version = "HTTP/1.0"
+server_address = ("127.0.0.1", int(sys.argv[1]) if sys.argv[1:] else 0)
+httpd = HTTPServer(server_address, HandlerClass)
ip, port = httpd.socket.getsockname()[0:2]
-print ("Server started, http://%s:%s/" % (ip, port))
+print("Server started, http://%s:%s/" % (ip, port))
# Flush in case we're in full buffering mode (instead of line
# buffering), this might happen if python is a cygwin program and we
# run it from a native w32 program.
(ert-deftest package-test-update-archives-async ()
"Test updating package archives asynchronously."
:tags '(:expensive-test)
- (skip-unless (executable-find "python2"))
(let* ((package-menu-async t)
(default-directory package-test-data-dir)
- (process (start-process
+ (python-interpreter (seq-some #'executable-find '("python" "python3" "python2")))
+ process addr)
+ (skip-unless python-interpreter)
+ (setq process (start-process
"package-server" "package-server-buffer"
- (executable-find "python2")
+ python-interpreter
"package-test-server.py"))
- (addr nil))
(unwind-protect
(progn
(with-current-buffer "package-server-buffer"