From: Lin Sun <sunlin7.mail@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 70722@debbugs.gnu.org
Subject: bug#70722: [PATCH] ; Migrate to python3 for (package-test-update-archives-async)
Date: Mon, 6 May 2024 00:28:07 +0000 [thread overview]
Message-ID: <CABCREdq8mQa68W_WQmjDXAj82Og5nx6Yprq2-yn2fLPTE4pUwQ@mail.gmail.com> (raw)
In-Reply-To: <86sez0jb7i.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 1225 bytes --]
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.
[-- Attachment #2: 0001-Support-python3-for-package-test-update-archives-asy.patch --]
[-- Type: text/x-patch, Size: 3611 bytes --]
From 814d21df047460be1eae004ad2031a97059f4665 Mon Sep 17 00:00:00 2001
From: Lin Sun <sunlin7@hotmail.com>
Date: Thu, 2 May 2024 06:52:09 +0000
Subject: [PATCH] ; Support python3 for (package-test-update-archives-async)
(bug#70722)
* lisp/emacs-lisp/package-tests.el (package-test-update-archives-async):
Searching python/python3/pyhton2 and decides coresponding python
script file.
* test/lisp/emacs-lisp/package-resources/package-test-server.py3:
Python3 script for package test server.
---
.../package-resources/package-test-server.py3 | 17 ++++++++++++
test/lisp/emacs-lisp/package-tests.el | 26 +++++++++++++++----
2 files changed, 38 insertions(+), 5 deletions(-)
create mode 100644 test/lisp/emacs-lisp/package-resources/package-test-server.py3
diff --git a/test/lisp/emacs-lisp/package-resources/package-test-server.py3 b/test/lisp/emacs-lisp/package-resources/package-test-server.py3
new file mode 100644
index 00000000000..8f2d2db5f96
--- /dev/null
+++ b/test/lisp/emacs-lisp/package-resources/package-test-server.py3
@@ -0,0 +1,17 @@
+## package-test-server.py3 -*- mode: python; coding: utf-8 -*-
+import sys
+from http.server import HTTPServer, SimpleHTTPRequestHandler
+
+
+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))
+# 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.
+sys.stdout.flush()
+httpd.serve_forever()
diff --git a/test/lisp/emacs-lisp/package-tests.el b/test/lisp/emacs-lisp/package-tests.el
index d95b94f2145..3309ba32e0d 100644
--- a/test/lisp/emacs-lisp/package-tests.el
+++ b/test/lisp/emacs-lisp/package-tests.el
@@ -634,14 +634,30 @@ 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 python-test-script
+ process addr)
+ (when-let* ((py-interpreter (executable-find "python"))
+ (py-ver (shell-command-to-string "python --version")))
+ (setq python-interpreter py-interpreter
+ python-test-script (if (string-match-p "Python 2" py-ver)
+ "package-test-server.py"
+ "package-test-server.py3")))
+ (when-let* (((not python-interpreter))
+ (py-interpreter (executable-find "python3")))
+ (setq python-interpreter py-interpreter
+ python-test-script "package-test-server.py3"))
+ (when-let* (((not python-interpreter))
+ (py-interpreter (executable-find "python2")))
+ (setq python-interpreter py-interpreter
+ python-test-script "package-test-server.py"))
+
+ (skip-unless python-interpreter)
+
+ (setq process (start-process
"package-server" "package-server-buffer"
- (executable-find "python2")
- "package-test-server.py"))
- (addr nil))
+ python-interpreter python-test-script))
(unwind-protect
(progn
(with-current-buffer "package-server-buffer"
--
2.20.5
next prev parent reply other threads:[~2024-05-06 0:28 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 [this message]
2024-05-09 8:33 ` Eli Zaretskii
2024-05-09 16:00 ` kobarity
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=CABCREdq8mQa68W_WQmjDXAj82Og5nx6Yprq2-yn2fLPTE4pUwQ@mail.gmail.com \
--to=sunlin7.mail@gmail.com \
--cc=70722@debbugs.gnu.org \
--cc=eliz@gnu.org \
/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).