unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: kobarity <kobarity@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>, Lin Sun <sunlin7.mail@gmail.com>
Cc: 70722@debbugs.gnu.org
Subject: bug#70722: [PATCH] ; Migrate to python3 for (package-test-update-archives-async)
Date: Fri, 10 May 2024 01:00:13 +0900	[thread overview]
Message-ID: <eke7frurt1pu.wl-kobarity@gmail.com> (raw)
In-Reply-To: <86bk5f75bv.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 1657 bytes --]


Eli Zaretskii wrote:
> 
> > From: Lin Sun <sunlin7.mail@gmail.com>
> > Date: Mon, 6 May 2024 00:28:07 +0000
> > Cc: 70722@debbugs.gnu.org
> > 
> > On Thu, May 2, 2024 at 6:55 PM Eli Zaretskii <eliz@gnu.org> wrote:
> > >
> > > > From: Lin Sun <sunlin7.mail@gmail.com>
> > > > Date: Thu, 2 May 2024 18:11:04 +0000
> > > >
> > > > The test case "package-test-update-archives-async" still tries to
> > > > search "python2" for testing, while python2 was at the end of its life
> > > > years ago.
> > > > So move the test case from python2 to python3.
> > >
> > > I'd prefer to make the test support both Python 2.x and Python 3.x.
> > > The fact that python.org end-of-life'd Python 2 doesn't mean we have
> > > to jump to attention and follow suit.  Old systems might still have
> > > Python 2 installed, and there's no need to drop them.
> > >
> > > I do agree that we should try looking for Python 3 first, and only
> > > afterwards for Python 2.
> > >
> > > Also, I think the test should start by looking for just "python",
> > > before the versioned variants.
> > >
> > > E.g., on my system (executable-find "python3") returns nil, although I
> > > have Python 3.x installed -- but it's installed under the name
> > > "python".
> > Thanks for the comment, and it's true that python2 will still exist
> > for many years.
> > And I had changed the test case to adapt python/python3/python2 automatically.
> > Please help review the new patch. Thanks.
> 
> Thanks.
> 
> kobarity, any comments, or should I install this?

I agree with the policy to support both Python 2/3.
How about a patch like the one attached?

[-- Attachment #2: 0001-Support-Python-3-in-package-test-update-archives-asy.patch --]
[-- Type: application/octet-stream, Size: 3225 bytes --]

From 7d5fff9814517da14a45a45bd14e8152ae4bf6fc Mon Sep 17 00:00:00 2001
From: kobarity <kobarity@gmail.com>
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 <sunlin7@hotmail.com>
---
 .../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 = 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 @@ package-test-update-archives
 (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"
-- 
2.34.1


  reply	other threads:[~2024-05-09 16:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-02 18:11 bug#70722: [PATCH] ; Migrate to python3 for (package-test-update-archives-async) Lin Sun
2024-05-02 18:54 ` Eli Zaretskii
2024-05-06  0:28   ` Lin Sun
2024-05-09  8:33     ` Eli Zaretskii
2024-05-09 16:00       ` kobarity [this message]
2024-05-09 16:19         ` Lin Sun
2024-05-11 10:07         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eke7frurt1pu.wl-kobarity@gmail.com \
    --to=kobarity@gmail.com \
    --cc=70722@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=sunlin7.mail@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).