From 6380806196f3806b6c2bff60ff6cddae3eee2a19 Mon Sep 17 00:00:00 2001 From: kobarity Date: Fri, 10 May 2024 00:39:10 +0900 Subject: [PATCH] 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 --- .../package-resources/package-test-server.py | 24 ++++++++----------- test/lisp/emacs-lisp/package-tests.el | 9 +++---- 2 files changed, 15 insertions(+), 18 deletions(-) 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.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"