From: kobarity Date: Thu, 9 May 2024 15:39:10 +0000 (+0900) Subject: Support Python 3 in 'package-test-update-archives-async' X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6b66ed31823700d20f8d6e7e1d0c9178221081d7;p=emacs.git Support Python 3 in 'package-test-update-archives-async' * test/lisp/emacs-lisp/package-resources/package-test-server.py: Support Python 3. * test/lisp/emacs-lisp/package-tests.el (package-test-update-archives-async): Search for an executable named "python", "python3", or "python2". (Bug#70722) Co-authored-by: Lin Sun (cherry picked from commit 6380806196f3806b6c2bff60ff6cddae3eee2a19) --- diff --git a/test/lisp/emacs-lisp/package-resources/package-test-server.py b/test/lisp/emacs-lisp/package-resources/package-test-server.py index 128b4249ec3..16f3e391aa1 100644 --- a/test/lisp/emacs-lisp/package-resources/package-test-server.py +++ b/test/lisp/emacs-lisp/package-resources/package-test-server.py @@ -1,23 +1,19 @@ 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. diff --git a/test/lisp/emacs-lisp/package-tests.el b/test/lisp/emacs-lisp/package-tests.el index d95b94f2145..692d6550250 100644 --- a/test/lisp/emacs-lisp/package-tests.el +++ b/test/lisp/emacs-lisp/package-tests.el @@ -634,14 +634,15 @@ but with a different end of line convention (bug#48137)." (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"