diff options
Diffstat (limited to 'test/lisp/progmodes/python-tests.el')
| -rw-r--r-- | test/lisp/progmodes/python-tests.el | 76 |
1 files changed, 50 insertions, 26 deletions
diff --git a/test/lisp/progmodes/python-tests.el b/test/lisp/progmodes/python-tests.el index 0eb1c087f4c..1a6a7dc176d 100644 --- a/test/lisp/progmodes/python-tests.el +++ b/test/lisp/progmodes/python-tests.el | |||
| @@ -2634,58 +2634,59 @@ if x: | |||
| 2634 | "Test `python-shell-process-environment' modification." | 2634 | "Test `python-shell-process-environment' modification." |
| 2635 | (let* ((python-shell-process-environment | 2635 | (let* ((python-shell-process-environment |
| 2636 | '("TESTVAR1=value1" "TESTVAR2=value2")) | 2636 | '("TESTVAR1=value1" "TESTVAR2=value2")) |
| 2637 | (process-environment (python-shell-calculate-process-environment))) | 2637 | (env (python-shell--calculate-process-environment))) |
| 2638 | (should (equal (getenv "TESTVAR1") "value1")) | 2638 | (should (equal (getenv-internal "TESTVAR1" env) "value1")) |
| 2639 | (should (equal (getenv "TESTVAR2") "value2")))) | 2639 | (should (equal (getenv-internal "TESTVAR2" env) "value2")))) |
| 2640 | 2640 | ||
| 2641 | (ert-deftest python-shell-calculate-process-environment-2 () | 2641 | (ert-deftest python-shell-calculate-process-environment-2 () |
| 2642 | "Test `python-shell-extra-pythonpaths' modification." | 2642 | "Test `python-shell-extra-pythonpaths' modification." |
| 2643 | (let* ((process-environment process-environment) | 2643 | (let* ((process-environment process-environment) |
| 2644 | (_original-pythonpath (setenv "PYTHONPATH" "/path0")) | 2644 | (_original-pythonpath (setenv "PYTHONPATH" "/path0")) |
| 2645 | (python-shell-extra-pythonpaths '("/path1" "/path2")) | 2645 | (python-shell-extra-pythonpaths '("/path1" "/path2")) |
| 2646 | (process-environment (python-shell-calculate-process-environment))) | 2646 | (env (python-shell--calculate-process-environment))) |
| 2647 | (should (equal (getenv "PYTHONPATH") | 2647 | (should (equal (getenv-internal "PYTHONPATH" env) |
| 2648 | (concat "/path1" path-separator | 2648 | (concat "/path1" path-separator |
| 2649 | "/path2" path-separator "/path0"))))) | 2649 | "/path2" path-separator "/path0"))))) |
| 2650 | 2650 | ||
| 2651 | (ert-deftest python-shell-calculate-process-environment-3 () | 2651 | (ert-deftest python-shell-calculate-process-environment-3 () |
| 2652 | "Test `python-shell-virtualenv-root' modification." | 2652 | "Test `python-shell-virtualenv-root' modification." |
| 2653 | (let* ((python-shell-virtualenv-root "/env") | 2653 | (let* ((python-shell-virtualenv-root "/env") |
| 2654 | (process-environment | 2654 | (env |
| 2655 | (let ((process-environment process-environment)) | 2655 | (let ((process-environment process-environment)) |
| 2656 | (setenv "PYTHONHOME" "/home") | 2656 | (setenv "PYTHONHOME" "/home") |
| 2657 | (setenv "VIRTUAL_ENV") | 2657 | (setenv "VIRTUAL_ENV") |
| 2658 | (python-shell-calculate-process-environment)))) | 2658 | (python-shell--calculate-process-environment)))) |
| 2659 | (should (not (getenv "PYTHONHOME"))) | 2659 | (should (member "PYTHONHOME" env)) |
| 2660 | (should (string= (getenv "VIRTUAL_ENV") "/env")))) | 2660 | (should (string= (getenv-internal "VIRTUAL_ENV" env) "/env")))) |
| 2661 | 2661 | ||
| 2662 | (ert-deftest python-shell-calculate-process-environment-4 () | 2662 | (ert-deftest python-shell-calculate-process-environment-4 () |
| 2663 | "Test PYTHONUNBUFFERED when `python-shell-unbuffered' is non-nil." | 2663 | "Test PYTHONUNBUFFERED when `python-shell-unbuffered' is non-nil." |
| 2664 | (let* ((python-shell-unbuffered t) | 2664 | (let* ((python-shell-unbuffered t) |
| 2665 | (process-environment | 2665 | (env |
| 2666 | (let ((process-environment process-environment)) | 2666 | (let ((process-environment process-environment)) |
| 2667 | (setenv "PYTHONUNBUFFERED") | 2667 | (setenv "PYTHONUNBUFFERED") |
| 2668 | (python-shell-calculate-process-environment)))) | 2668 | (python-shell--calculate-process-environment)))) |
| 2669 | (should (string= (getenv "PYTHONUNBUFFERED") "1")))) | 2669 | (should (string= (getenv-internal "PYTHONUNBUFFERED" env) "1")))) |
| 2670 | 2670 | ||
| 2671 | (ert-deftest python-shell-calculate-process-environment-5 () | 2671 | (ert-deftest python-shell-calculate-process-environment-5 () |
| 2672 | "Test PYTHONUNBUFFERED when `python-shell-unbuffered' is nil." | 2672 | "Test PYTHONUNBUFFERED when `python-shell-unbuffered' is nil." |
| 2673 | (let* ((python-shell-unbuffered nil) | 2673 | (let* ((python-shell-unbuffered nil) |
| 2674 | (process-environment | 2674 | (env |
| 2675 | (let ((process-environment process-environment)) | 2675 | (let ((process-environment process-environment)) |
| 2676 | (setenv "PYTHONUNBUFFERED") | 2676 | (setenv "PYTHONUNBUFFERED") |
| 2677 | (python-shell-calculate-process-environment)))) | 2677 | (python-shell--calculate-process-environment)))) |
| 2678 | (should (not (getenv "PYTHONUNBUFFERED"))))) | 2678 | (should (not (getenv-internal "PYTHONUNBUFFERED" env))))) |
| 2679 | 2679 | ||
| 2680 | (ert-deftest python-shell-calculate-process-environment-6 () | 2680 | (ert-deftest python-shell-calculate-process-environment-6 () |
| 2681 | "Test PYTHONUNBUFFERED=1 when `python-shell-unbuffered' is nil." | 2681 | "Test PYTHONUNBUFFERED=1 when `python-shell-unbuffered' is nil." |
| 2682 | (let* ((python-shell-unbuffered nil) | 2682 | (let* ((python-shell-unbuffered nil) |
| 2683 | (process-environment | 2683 | (env |
| 2684 | (let ((process-environment process-environment)) | 2684 | (let ((process-environment process-environment)) |
| 2685 | (setenv "PYTHONUNBUFFERED" "1") | 2685 | (setenv "PYTHONUNBUFFERED" "1") |
| 2686 | (python-shell-calculate-process-environment)))) | 2686 | (append (python-shell--calculate-process-environment) |
| 2687 | process-environment)))) | ||
| 2687 | ;; User default settings must remain untouched: | 2688 | ;; User default settings must remain untouched: |
| 2688 | (should (string= (getenv "PYTHONUNBUFFERED") "1")))) | 2689 | (should (string= (getenv-internal "PYTHONUNBUFFERED" env) "1")))) |
| 2689 | 2690 | ||
| 2690 | (ert-deftest python-shell-calculate-process-environment-7 () | 2691 | (ert-deftest python-shell-calculate-process-environment-7 () |
| 2691 | "Test no side-effects on `process-environment'." | 2692 | "Test no side-effects on `process-environment'." |
| @@ -2695,7 +2696,7 @@ if x: | |||
| 2695 | (python-shell-unbuffered t) | 2696 | (python-shell-unbuffered t) |
| 2696 | (python-shell-extra-pythonpaths'("/path1" "/path2")) | 2697 | (python-shell-extra-pythonpaths'("/path1" "/path2")) |
| 2697 | (original-process-environment (copy-sequence process-environment))) | 2698 | (original-process-environment (copy-sequence process-environment))) |
| 2698 | (python-shell-calculate-process-environment) | 2699 | (python-shell--calculate-process-environment) |
| 2699 | (should (equal process-environment original-process-environment)))) | 2700 | (should (equal process-environment original-process-environment)))) |
| 2700 | 2701 | ||
| 2701 | (ert-deftest python-shell-calculate-process-environment-8 () | 2702 | (ert-deftest python-shell-calculate-process-environment-8 () |
| @@ -2708,7 +2709,7 @@ if x: | |||
| 2708 | (python-shell-extra-pythonpaths'("/path1" "/path2")) | 2709 | (python-shell-extra-pythonpaths'("/path1" "/path2")) |
| 2709 | (original-process-environment | 2710 | (original-process-environment |
| 2710 | (copy-sequence tramp-remote-process-environment))) | 2711 | (copy-sequence tramp-remote-process-environment))) |
| 2711 | (python-shell-calculate-process-environment) | 2712 | (python-shell--calculate-process-environment) |
| 2712 | (should (equal tramp-remote-process-environment original-process-environment)))) | 2713 | (should (equal tramp-remote-process-environment original-process-environment)))) |
| 2713 | 2714 | ||
| 2714 | (ert-deftest python-shell-calculate-exec-path-1 () | 2715 | (ert-deftest python-shell-calculate-exec-path-1 () |
| @@ -2780,23 +2781,43 @@ if x: | |||
| 2780 | (should (string= (getenv "VIRTUAL_ENV") "/env"))) | 2781 | (should (string= (getenv "VIRTUAL_ENV") "/env"))) |
| 2781 | (should (equal exec-path original-exec-path)))) | 2782 | (should (equal exec-path original-exec-path)))) |
| 2782 | 2783 | ||
| 2784 | (defun python--tests-process-env-canonical (pe) | ||
| 2785 | ;; `process-environment' can contain various entries for the same | ||
| 2786 | ;; var, and the first in the list hides the others. | ||
| 2787 | (let ((process-environment '())) | ||
| 2788 | (dolist (x (reverse pe)) | ||
| 2789 | (if (string-match "=" x) | ||
| 2790 | (setenv (substring x 0 (match-beginning 0)) | ||
| 2791 | (substring x (match-end 0))) | ||
| 2792 | (setenv x nil))) | ||
| 2793 | process-environment)) | ||
| 2794 | |||
| 2795 | (defun python--tests-process-env-eql (pe1 pe2) | ||
| 2796 | (equal (python--tests-process-env-canonical pe1) | ||
| 2797 | (python--tests-process-env-canonical pe2))) | ||
| 2798 | |||
| 2783 | (ert-deftest python-shell-with-environment-2 () | 2799 | (ert-deftest python-shell-with-environment-2 () |
| 2784 | "Test environment with remote `default-directory'." | 2800 | "Test environment with remote `default-directory'." |
| 2785 | (let* ((default-directory "/ssh::/example/dir/") | 2801 | (let* ((default-directory "/ssh::/example/dir/") |
| 2786 | (python-shell-remote-exec-path '("/remote1" "/remote2")) | 2802 | (python-shell-remote-exec-path '("/remote1" "/remote2")) |
| 2787 | (python-shell-exec-path '("/path1" "/path2")) | 2803 | (python-shell-exec-path '("/path1" "/path2")) |
| 2788 | (tramp-remote-process-environment '("EMACS=t")) | 2804 | (tramp-remote-process-environment '("EMACS=t")) |
| 2789 | (original-process-environment (copy-sequence tramp-remote-process-environment)) | 2805 | (original-process-environment |
| 2806 | (copy-sequence tramp-remote-process-environment)) | ||
| 2790 | (python-shell-virtualenv-root "/env")) | 2807 | (python-shell-virtualenv-root "/env")) |
| 2791 | (python-shell-with-environment | 2808 | (python-shell-with-environment |
| 2792 | (should (equal (python-shell-calculate-exec-path) | 2809 | (should (equal (python-shell-calculate-exec-path) |
| 2793 | (list (python-virt-bin) | 2810 | (list (python-virt-bin) |
| 2794 | "/path1" "/path2" "/remote1" "/remote2"))) | 2811 | "/path1" "/path2" "/remote1" "/remote2"))) |
| 2795 | (let ((process-environment (python-shell-calculate-process-environment))) | 2812 | (let ((process-environment |
| 2813 | (append (python-shell--calculate-process-environment) | ||
| 2814 | tramp-remote-process-environment))) | ||
| 2796 | (should (not (getenv "PYTHONHOME"))) | 2815 | (should (not (getenv "PYTHONHOME"))) |
| 2797 | (should (string= (getenv "VIRTUAL_ENV") "/env")) | 2816 | (should (string= (getenv "VIRTUAL_ENV") "/env")) |
| 2798 | (should (equal tramp-remote-process-environment process-environment)))) | 2817 | (should (python--tests-process-env-eql |
| 2799 | (should (equal tramp-remote-process-environment original-process-environment)))) | 2818 | tramp-remote-process-environment process-environment)))) |
| 2819 | (should (equal tramp-remote-process-environment | ||
| 2820 | original-process-environment)))) | ||
| 2800 | 2821 | ||
| 2801 | (ert-deftest python-shell-with-environment-3 () | 2822 | (ert-deftest python-shell-with-environment-3 () |
| 2802 | "Test `python-shell-with-environment' is idempotent." | 2823 | "Test `python-shell-with-environment' is idempotent." |
| @@ -2805,11 +2826,14 @@ if x: | |||
| 2805 | (python-shell-virtualenv-root "/home/user/env") | 2826 | (python-shell-virtualenv-root "/home/user/env") |
| 2806 | (single-call | 2827 | (single-call |
| 2807 | (python-shell-with-environment | 2828 | (python-shell-with-environment |
| 2808 | (list exec-path process-environment))) | 2829 | (list exec-path |
| 2830 | (python--tests-process-env-canonical process-environment)))) | ||
| 2809 | (nested-call | 2831 | (nested-call |
| 2810 | (python-shell-with-environment | 2832 | (python-shell-with-environment |
| 2811 | (python-shell-with-environment | 2833 | (python-shell-with-environment |
| 2812 | (list exec-path process-environment))))) | 2834 | (list exec-path |
| 2835 | (python--tests-process-env-canonical | ||
| 2836 | process-environment)))))) | ||
| 2813 | (should (equal single-call nested-call)))) | 2837 | (should (equal single-call nested-call)))) |
| 2814 | 2838 | ||
| 2815 | (ert-deftest python-shell-make-comint-1 () | 2839 | (ert-deftest python-shell-make-comint-1 () |