[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#21375: 25.0.50; Python tests fail on MS-Windows -- portability issue
From: |
Eli Zaretskii |
Subject: |
bug#21375: 25.0.50; Python tests fail on MS-Windows -- portability issues |
Date: |
Sat, 29 Aug 2015 15:13:33 +0300 |
As I reported in the past, some Python tests fail on MS-Windows. 13
of them, to be more accurate. The changes below reduce those 13 to
just 4.
The main problems fixed by these changes are: (a) the assumption that
"/foo" is an absolute file name that expand-file-name cannot possibly
change, and (b) use of a literal ':' character is PATH-style lists of
directories. Also, one of the failures was because
python-shell-calculate-command always quotes the interpreter's file
name on MS-Windows, which the test didn't expect.
Fabián, if these are OK with you, I will commit them.
I will file a separate bug about the other 4 failures, as I need help
there in figuring out how to fix them.
Thanks.
Here are the proposed changes, relative to today's master:
diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el
index 30b1b48..219f99e 100644
--- a/test/automated/python-tests.el
+++ b/test/automated/python-tests.el
@@ -2436,7 +2436,7 @@ (ert-deftest python-shell-calculate-command-1 ()
(python-shell-interpreter-args "-B"))
(should (string=
(format "%s %s"
- python-shell-interpreter
+ (shell-quote-argument python-shell-interpreter)
python-shell-interpreter-args)
(python-shell-calculate-command)))))
@@ -2445,14 +2445,17 @@ (ert-deftest python-shell-calculate-pythonpath-1 ()
(let ((process-environment '("PYTHONPATH=/path0"))
(python-shell-extra-pythonpaths '("/path1" "/path2")))
(should (string= (python-shell-calculate-pythonpath)
- "/path1:/path2:/path0"))))
+ (concat "/path1" path-separator
+ "/path2" path-separator "/path0")))))
(ert-deftest python-shell-calculate-pythonpath-2 ()
"Test existing paths are moved to front."
- (let ((process-environment '("PYTHONPATH=/path0:/path1"))
+ (let ((process-environment
+ (list (concat "PYTHONPATH=/path0" path-separator "/path1")))
(python-shell-extra-pythonpaths '("/path1" "/path2")))
(should (string= (python-shell-calculate-pythonpath)
- "/path1:/path2:/path0"))))
+ (concat "/path1" path-separator
+ "/path2" path-separator "/path0")))))
(ert-deftest python-shell-calculate-process-environment-1 ()
"Test `python-shell-process-environment' modification."
@@ -2468,7 +2471,9 @@ (ert-deftest python-shell-calculate-process-environment-2
()
(original-pythonpath (setenv "PYTHONPATH" "/path0"))
(python-shell-extra-pythonpaths '("/path1" "/path2"))
(process-environment (python-shell-calculate-process-environment)))
- (should (equal (getenv "PYTHONPATH") "/path1:/path2:/path0"))))
+ (should (equal (getenv "PYTHONPATH")
+ (concat "/path1" path-separator
+ "/path2" path-separator "/path0")))))
(ert-deftest python-shell-calculate-process-environment-3 ()
"Test `python-shell-virtualenv-root' modification."
@@ -2545,7 +2550,8 @@ (ert-deftest python-shell-calculate-exec-path-2 ()
(let* ((exec-path '("/path0"))
(python-shell-virtualenv-root "/env")
(new-exec-path (python-shell-calculate-exec-path)))
- (should (equal new-exec-path '("/env/bin" "/path0")))))
+ (should (equal new-exec-path
+ (list (expand-file-name "/env/bin") "/path0")))))
(ert-deftest python-shell-calculate-exec-path-3 ()
"Test complete `python-shell-virtualenv-root' modification."
@@ -2553,7 +2559,9 @@ (ert-deftest python-shell-calculate-exec-path-3 ()
(python-shell-exec-path '("/path1" "/path2"))
(python-shell-virtualenv-root "/env")
(new-exec-path (python-shell-calculate-exec-path)))
- (should (equal new-exec-path '("/env/bin" "/path1" "/path2" "/path0")))))
+ (should (equal new-exec-path
+ (list (expand-file-name "/env/bin")
+ "/path1" "/path2" "/path0")))))
(ert-deftest python-shell-calculate-exec-path-4 ()
"Test complete `python-shell-virtualenv-root' with remote."
@@ -2562,7 +2570,9 @@ (ert-deftest python-shell-calculate-exec-path-4 ()
(python-shell-exec-path '("/path1" "/path2"))
(python-shell-virtualenv-root "/env")
(new-exec-path (python-shell-calculate-exec-path)))
- (should (equal new-exec-path '("/env/bin" "/path1" "/path2" "/path0")))))
+ (should (equal new-exec-path
+ (list (expand-file-name "/env/bin")
+ "/path1" "/path2" "/path0")))))
(ert-deftest python-shell-calculate-exec-path-5 ()
"Test no side-effects on `exec-path'."
@@ -2590,7 +2600,9 @@ (ert-deftest python-shell-with-environment-1 ()
(original-exec-path exec-path)
(python-shell-virtualenv-root "/env"))
(python-shell-with-environment
- (should (equal exec-path '("/env/bin" "/path1" "/path2" "/path0")))
+ (should (equal exec-path
+ (list (expand-file-name "/env/bin")
+ "/path1" "/path2" "/path0")))
(should (not (getenv "PYTHONHOME")))
(should (string= (getenv "VIRTUAL_ENV") "/env")))
(should (equal exec-path original-exec-path))))
@@ -2605,7 +2617,8 @@ (ert-deftest python-shell-with-environment-2 ()
(python-shell-virtualenv-root "/env"))
(python-shell-with-environment
(should (equal (python-shell-calculate-exec-path)
- '("/env/bin" "/path1" "/path2" "/remote1" "/remote2")))
+ (list (expand-file-name "/env/bin")
+ "/path1" "/path2" "/remote1" "/remote2")))
(let ((process-environment (python-shell-calculate-process-environment)))
(should (not (getenv "PYTHONHOME")))
(should (string= (getenv "VIRTUAL_ENV") "/env"))
In GNU Emacs 25.0.50.384 (i686-pc-mingw32)
of 2015-08-29
Repository revision: 5e63c842007b0f85e91735a7c4e00be0b7fe9ba5
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
`configure --prefix=/d/usr --enable-checking=yes,glyphs --with-wide-int
'CFLAGS=-gdwarf-4 -g3 -O0''
Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS
Important settings:
value of $LANG: ENU
locale-coding-system: cp1255
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Load-path shadows:
None found.
Features:
(shadow sort gnus-util mail-extr emacsbug message dired format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr
mail-utils time-date mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table
w32-win w32-vars term/common-win tool-bar dnd fontset image regexp-opt
fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote w32notify w32 multi-tty
make-network-process emacs)
Memory information:
((conses 16 84975 6948)
(symbols 56 19924 0)
(miscs 48 36 107)
(strings 16 15967 5012)
(string-bytes 1 393017)
(vectors 16 11212)
(vector-slots 8 402827 5209)
(floats 8 125 127)
(intervals 40 260 63)
(buffers 856 11))
- bug#21375: 25.0.50; Python tests fail on MS-Windows -- portability issues,
Eli Zaretskii <=