diff --git a/.travis.yml b/.travis.yml index d7b336b55..61cf4de6a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -73,7 +73,7 @@ install: - virtualenv ~/.virtualenvs/elpy-test-venv script: - nosetests - - PYTHONPATH="`pwd`" cask exec ert-runner + - PYTHONPATH="`pwd`" cask exec ert-runner --reporter ert+duration after_success: - coverage run -m nose.__main__ - coveralls diff --git a/elpy-shell.el b/elpy-shell.el index a35d79084..4f5286f95 100644 --- a/elpy-shell.el +++ b/elpy-shell.el @@ -275,11 +275,17 @@ Python process. This allows the process to start up." (error "Wrong value for `elpy-shell-starting-directory', please check this variable documentation and set it to a proper value"))))) (run-python (python-shell-parse-command) nil t)) (when sit (sit-for sit)) - (when (elpy-project-root) - (python-shell-send-string - (format "import sys;sys.path.append('%s')" (elpy-project-root)))) (get-buffer-process bufname)))) +(defun elpy-shell--send-setup-code () + "Send setup code for the shell." + (let ((process (python-shell-get-process))) + (when (elpy-project-root) + (python-shell-send-string-no-output + (format "import sys;sys.path.append('%s');del sys" + (elpy-project-root)) + process)))) + (defun elpy-shell-toggle-dedicated-shell (&optional arg) "Toggle the use of a dedicated python shell for the current buffer. diff --git a/elpy.el b/elpy.el index aa0e5235e..a1d2529f1 100644 --- a/elpy.el +++ b/elpy.el @@ -518,6 +518,7 @@ This option need to bet set through `customize' or `customize-set-variable' to b (add-hook 'pyvenv-post-activate-hooks 'elpy-rpc--disconnect) (add-hook 'pyvenv-post-deactivate-hooks 'elpy-rpc--disconnect) (add-hook 'inferior-python-mode-hook 'elpy-shell--enable-output-filter) + (add-hook 'python-shell-first-prompt-hook 'elpy-shell--send-setup-code t) ;; Enable Elpy-mode in the opened python buffer (dolist (buffer (buffer-list)) (and (not (string-match "^ ?\\*" (buffer-name buffer))) @@ -529,9 +530,13 @@ This option need to bet set through `customize' or `customize-set-variable' to b (defun elpy-disable () "Disable Elpy in all future Python buffers." (interactive) + (elpy-modules-global-stop) + (define-key inferior-python-mode-map (kbd "C-c C-z") nil) (remove-hook 'python-mode-hook 'elpy-mode) + (remove-hook 'pyvenv-post-activate-hooks 'elpy-rpc--disconnect) + (remove-hook 'pyvenv-post-deactivate-hooks 'elpy-rpc--disconnect) (remove-hook 'inferior-python-mode-hook 'elpy-shell--enable-output-filter) - (elpy-modules-global-stop) + (remove-hook 'python-shell-first-prompt-hook 'elpy-shell--send-setup-code) (setq elpy-enabled-p nil)) ;;;###autoload @@ -3501,6 +3506,21 @@ which we're looking." (defun python-info-encoding () 'utf-8)) +;; first-prompt-hook has been added in emacs 25. +;; for earlier versions, make sure Elpy's setup code is +;; still send to the python shell. +(unless (boundp 'python-shell-first-prompt-hook) + (add-hook 'inferior-python-mode-hook + (lambda () + (when (elpy-project-root) + (let ((process (get-buffer-process (current-buffer)))) + (python-shell-send-string + (format "import sys;sys.path.append('%s');del sys" + (elpy-project-root)) + process)))))) + + + ;; Added in Emacs 25 (unless (fboundp 'python-shell-comint-end-of-output-p) (defun python-shell-comint-end-of-output-p (output) diff --git a/test/elpy-company-backend-test.el b/test/elpy-company-backend-test.el index 79cb700fa..43d47cddc 100644 --- a/test/elpy-company-backend-test.el +++ b/test/elpy-company-backend-test.el @@ -16,26 +16,23 @@ (ert-deftest elpy-company-backend-should-find-no-prefix-in-string () (elpy-testcase () - (elpy-modules-run 'global-init) + (elpy-enable) (python-mode) - (elpy-mode) (insert "# hello") (should-not (elpy-company-backend 'prefix)))) (ert-deftest elpy-company-backend-should-find-simple-prefix-string () (elpy-testcase () - (elpy-modules-run 'global-init) + (elpy-enable) (python-mode) - (elpy-mode) (insert "hello") (should (equal (elpy-company-backend 'prefix) "hello")))) (ert-deftest elpy-company-backend-should-find-full-prefix-string () (elpy-testcase () - (elpy-modules-run 'global-init) + (elpy-enable) (python-mode) - (elpy-mode) (insert "hello.world") (should (equal (elpy-company-backend 'prefix) '("world" . t))))) @@ -120,9 +117,8 @@ (ert-deftest elpy-company-backend-should-add-shell-candidates () (elpy-testcase () - (elpy-modules-run 'global-init) + (elpy-enable) (python-mode) - (elpy-mode) (let ((elpy-get-info-from-shell t) (elpy-get-info-from-shell-timeout 10)) (insert "variable_script = 3\n") @@ -154,9 +150,8 @@ (ert-deftest elpy-company-backend-should-not-add-shell-candidates () (elpy-testcase () - (elpy-modules-run 'global-init) + (elpy-enable) (python-mode) - (elpy-mode) (insert "variable_script = 3\n") (insert "def function_script(a): print(a)\n") (elpy-shell-get-or-create-process) diff --git a/test/elpy-config-test.el b/test/elpy-config-test.el index b5606ee46..b10cfb01b 100644 --- a/test/elpy-config-test.el +++ b/test/elpy-config-test.el @@ -14,8 +14,8 @@ (ert-deftest elpy-config-should-show-flake8-pip-button-when-no-syntax-checker-available () (elpy-testcase () (mletf* ((elpy-syntax-check-command "/foo/bar/flake8")) + (elpy-enable) (python-mode) - (elpy-mode) (elpy-config) (let ((output (with-current-buffer "*Elpy Config*" (elpy/wait-for-output "Options") diff --git a/test/elpy-doc-test.el b/test/elpy-doc-test.el index 3f6ebcc9b..8b62738f4 100644 --- a/test/elpy-doc-test.el +++ b/test/elpy-doc-test.el @@ -3,8 +3,8 @@ (ert-deftest elpy-doc () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (insert "sys") (elpy-doc) (with-current-buffer "*Python Doc*" @@ -12,8 +12,8 @@ (ert-deftest elpy-doc-should-find-documentation-from-inside-arguments () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (insert "import socket\n" "socket.getaddrinfo(socket.gethostname(") (save-excursion diff --git a/test/elpy-keymap-test.el b/test/elpy-keymap-test.el index 2108464e7..b7103051b 100644 --- a/test/elpy-keymap-test.el +++ b/test/elpy-keymap-test.el @@ -1,7 +1,7 @@ (ert-deftest elpy-shell-prefix-key-should-be-changed-when-customized () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (customize-set-variable 'elpy-shell-command-prefix-key "C-c C-a") (should (equal elpy-shell-command-prefix-key "C-c C-a")) (should (equal (key-binding (kbd "C-c C-a")) 'elpy-shell-map)) diff --git a/test/elpy-module-autodoc-test.el b/test/elpy-module-autodoc-test.el index 471d7ba72..72d07cfda 100644 --- a/test/elpy-module-autodoc-test.el +++ b/test/elpy-module-autodoc-test.el @@ -16,8 +16,8 @@ def fun2(): (elpy-testcase () (let ((elpy-autodoc-delay 0.01)) (add-to-list 'elpy-modules 'elpy-module-autodoc) + (elpy-enable) (python-mode) - (elpy-mode) (elpy-doc-test-insert-functions) (insert "fun1") (elpy-doc) @@ -32,6 +32,7 @@ def fun2(): (ert-deftest elpy-doc-should-not-be-updated-if-doc-not-visible () (elpy-testcase () (let ((elpy-autodoc-delay 0.01)) + (elpy-enable) (add-to-list 'elpy-modules 'elpy-module-autodoc) (python-mode) (elpy-doc-test-insert-functions) @@ -49,9 +50,9 @@ def fun2(): (ert-deftest elpy-doc-should-not-be-updated-if-deactivated () (elpy-testcase () (let ((elpy-autodoc-delay 0.01)) + (elpy-enable) (add-to-list 'elpy-modules 'elpy-module-autodoc) (python-mode) - (elpy-mode) (setq elpy-autodoc-delay nil) (elpy-doc-test-insert-functions) (insert "fun1") diff --git a/test/elpy-module-company-test.el b/test/elpy-module-company-test.el index 7070b24ea..105ba8316 100644 --- a/test/elpy-module-company-test.el +++ b/test/elpy-module-company-test.el @@ -1,9 +1,7 @@ (ert-deftest elpy-module-company () (elpy-testcase () - (elpy-module-company 'global-init) + (elpy-enable) (python-mode) - (elpy-mode) - (elpy-module-company 'buffer-init) (should company-mode) (should (< (abs (- company-idle-delay 0.1)) diff --git a/test/elpy-module-sane-defaults-test.el b/test/elpy-module-sane-defaults-test.el index 80854bc2c..c288002bb 100644 --- a/test/elpy-module-sane-defaults-test.el +++ b/test/elpy-module-sane-defaults-test.el @@ -1,9 +1,7 @@ (ert-deftest elpy-module-sane-defaults-buffer-init () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) - - (elpy-module-sane-defaults 'buffer-init) (should (eq forward-sexp-function nil)) (should (= comment-inline-offset 2)))) diff --git a/test/elpy-module-yasnippet-test.el b/test/elpy-module-yasnippet-test.el index 018a3fe17..4a33efbd1 100644 --- a/test/elpy-module-yasnippet-test.el +++ b/test/elpy-module-yasnippet-test.el @@ -17,17 +17,15 @@ (ert-deftest elpy-module-yasnippet-buffer-init () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) - - (elpy-module-yasnippet 'buffer-init) (should yas-minor-mode))) (ert-deftest elpy-module-yasnippet-buffer-stop () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (yas-minor-mode 1) (elpy-module-yasnippet 'buffer-stop) diff --git a/test/elpy-pdb-clear-breakpoints-test.el b/test/elpy-pdb-clear-breakpoints-test.el index 189c26abd..101bbd1bc 100644 --- a/test/elpy-pdb-clear-breakpoints-test.el +++ b/test/elpy-pdb-clear-breakpoints-test.el @@ -2,8 +2,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/B\n" diff --git a/test/elpy-pdb-debug-buffer-and-break-at-point-test.el b/test/elpy-pdb-debug-buffer-and-break-at-point-test.el index c2ddf2afa..1bb029e4b 100644 --- a/test/elpy-pdb-debug-buffer-and-break-at-point-test.el +++ b/test/elpy-pdb-debug-buffer-and-break-at-point-test.el @@ -2,8 +2,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/b\n" @@ -22,8 +22,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/b\n" diff --git a/test/elpy-pdb-debug-buffer-from-beginning-test.el b/test/elpy-pdb-debug-buffer-from-beginning-test.el index 285802fc4..3918c9be6 100644 --- a/test/elpy-pdb-debug-buffer-from-beginning-test.el +++ b/test/elpy-pdb-debug-buffer-from-beginning-test.el @@ -2,8 +2,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/b\n" @@ -20,8 +20,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/b\n" @@ -41,8 +41,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/b\n" diff --git a/test/elpy-pdb-debug-buffer-test.el b/test/elpy-pdb-debug-buffer-test.el index 9e516bd00..e30b93f01 100644 --- a/test/elpy-pdb-debug-buffer-test.el +++ b/test/elpy-pdb-debug-buffer-test.el @@ -2,8 +2,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/b\n" @@ -20,8 +20,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/b\n" @@ -41,8 +41,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/b\n" @@ -70,8 +70,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/b\n" diff --git a/test/elpy-pdb-debug-last-exception-test.el b/test/elpy-pdb-debug-last-exception-test.el index 1c3cb8119..21baad04a 100644 --- a/test/elpy-pdb-debug-last-exception-test.el +++ b/test/elpy-pdb-debug-last-exception-test.el @@ -2,8 +2,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/B\n" @@ -24,8 +24,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/B\n" diff --git a/test/elpy-pdb-toggle-breakpoint-at-point-test.el b/test/elpy-pdb-toggle-breakpoint-at-point-test.el index 439c105fc..22465ec9b 100644 --- a/test/elpy-pdb-toggle-breakpoint-at-point-test.el +++ b/test/elpy-pdb-toggle-breakpoint-at-point-test.el @@ -2,8 +2,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/B\n" @@ -24,8 +24,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.0")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode 1) (insert "def foo(a):\n" " b = 1 + 2\n" " c = a/B\n" diff --git a/test/elpy-profile.el b/test/elpy-profile.el index 44078c2ec..c9abac8cd 100644 --- a/test/elpy-profile.el +++ b/test/elpy-profile.el @@ -8,8 +8,8 @@ (ert-deftest elpy-profile-buffer-or-region-test-succeed () (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "a = 0\nfor i in range(10000):\n a += (i**2 + 1)**.5") (let ((prof-file (elpy-profile-buffer-or-region nil t))) (while (string= (get-message-last-line) "[test.py] Profiling ...") @@ -21,8 +21,8 @@ (ert-deftest elpy-profile-buffer-or-region-test-fail () (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "a = 0\nfor i in range(10000):\n a += i**2 + 1)**.5") (let ((prof-file (elpy-profile-buffer-or-region nil t))) (while (string= (get-message-last-line) "[test.py] Profiling ...") @@ -34,8 +34,8 @@ (ert-deftest elpy-profile-buffer-or-region-test-indir-succeed () (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "a = 0\nfor i in range(10000):\n a += (i**2 + 1)**.5") (let ((prof-file (elpy-profile-buffer-or-region t t))) (while (string= (get-message-last-line) "[test.py] Profiling ...") @@ -47,8 +47,8 @@ (ert-deftest elpy-profile-buffer-or-region-test-indir-failed () (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "a = 0\nfor i in range(10000):\n a += i**2 + 1)**.5") (let ((prof-file (elpy-profile-buffer-or-region t t))) (while (string= (get-message-last-line) "[test.py] Profiling ...") diff --git a/test/elpy-rpc-get-completions-test.el b/test/elpy-rpc-get-completions-test.el index 62fd592f6..86443b008 100644 --- a/test/elpy-rpc-get-completions-test.el +++ b/test/elpy-rpc-get-completions-test.el @@ -14,8 +14,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.1")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def addition(x, y):\n" " return x + y\n" "def addition2(x, y):\n" @@ -37,8 +37,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.1")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(x, y):\n" " return x + y\n" "a = 893") @@ -49,8 +49,8 @@ (elpy-testcase ((:project project-root "test.py") (:emacs-required "25.1")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo12345(x, y):\n" " return x + y\n" "a = foo12") diff --git a/test/elpy-shell-add-to-shell-history-test.el b/test/elpy-shell-add-to-shell-history-test.el index 005ed6f24..fbe30757d 100644 --- a/test/elpy-shell-add-to-shell-history-test.el +++ b/test/elpy-shell-add-to-shell-history-test.el @@ -1,7 +1,7 @@ (ert-deftest elpy-shell-send-statement-should-add-to-shell-history () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (let ((elpy-shell-add-to-shell-history t)) (insert "a = 2 + 4") (elpy-shell-send-statement) @@ -16,8 +16,8 @@ (ert-deftest elpy-shell-send-statement-should-NOT-add-to-shell-history () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (let ((elpy-shell-add-to-shell-history nil)) (insert "a = 2 + 4") (elpy-shell-send-statement) @@ -29,8 +29,8 @@ (ert-deftest elpy-shell-send-statement-should-add-multilines-statements-to-shell-history () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (let ((elpy-shell-add-to-shell-history t)) (insert "def foo(a):\n" " d = a + 2\n" @@ -49,8 +49,8 @@ (ert-deftest elpy-shell-send-region-should-add-to-shell-history () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (let ((elpy-shell-add-to-shell-history t)) (insert "a = 2 + 4") (elpy/mark-region 0 10) @@ -66,8 +66,8 @@ (ert-deftest elpy-shell-send-region-should-NOT-add-to-shell-history () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (let ((elpy-shell-add-to-shell-history nil)) (insert "a = 2 + 4") (elpy/mark-region 0 10) @@ -79,8 +79,8 @@ (ert-deftest elpy-shell-send-region-should-add-multilines-statements-to-shell-history () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (let ((elpy-shell-add-to-shell-history t)) (insert "def foo(a):\n" " d = a + 2\n" diff --git a/test/elpy-shell-echo-inputs-and-outputs-test.el b/test/elpy-shell-echo-inputs-and-outputs-test.el index 9a0b19472..3eaf39841 100644 --- a/test/elpy-shell-echo-inputs-and-outputs-test.el +++ b/test/elpy-shell-echo-inputs-and-outputs-test.el @@ -1,8 +1,8 @@ (ert-deftest elpy-shell-should-not-echo-inputs-when-deactivated () (when (<= 25 emacs-major-version) (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (setq elpy-shell-echo-input nil) (setq elpy-shell-echo-output nil) (insert "def foo(d):\n" @@ -26,8 +26,8 @@ (ert-deftest elpy-shell-should-echo-inputs () (when (<= 25 emacs-major-version) (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (setq elpy-shell-echo-input t) (setq elpy-shell-echo-output nil) (insert "def foo(d):\n" @@ -86,8 +86,8 @@ (ert-deftest elpy-shell-should-echo-outputs () (when (<= 25 emacs-major-version) (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (setq elpy-shell-echo-input nil) (setq elpy-shell-echo-output t) (insert "def foo(d):\n" diff --git a/test/elpy-shell-get-or-create-process-test.el b/test/elpy-shell-get-or-create-process-test.el index ce2194ea1..f4ea3ccb6 100644 --- a/test/elpy-shell-get-or-create-process-test.el +++ b/test/elpy-shell-get-or-create-process-test.el @@ -7,3 +7,23 @@ (let ((proc (elpy-shell-get-or-create-process))) (with-current-buffer (process-buffer proc) (should (eq major-mode 'inferior-python-mode)))))) + +(ert-deftest elpy-shell-get-or-create-process-should-add-project-root-to-path () + (elpy-testcase ((:project project-root "test.py")) + (elpy-enable) + (find-file (f-join project-root "test.py")) + (python-mode) + (mletf* ((elpy-project-root () project-root)) + (elpy-shell-switch-to-shell) + ;; wait for shell to start + (python-shell-send-string "print('OK1')") + (elpy-shell-switch-to-shell) + (elpy/wait-for-output "OK1") + ;; check if path has been appended + (elpy-shell-switch-to-buffer) + (python-shell-send-string "import sys;print(sys.path)") + (python-shell-send-string "print('OK2')") + (elpy-shell-switch-to-shell) + (elpy/wait-for-output "OK2") + (should (string-match (format "'%s'" project-root) + (buffer-string)))))) diff --git a/test/elpy-shell-kill-test.el b/test/elpy-shell-kill-test.el index ab73782d5..a83fd43fd 100644 --- a/test/elpy-shell-kill-test.el +++ b/test/elpy-shell-kill-test.el @@ -1,15 +1,15 @@ (ert-deftest elpy-shell-kill-should-kill-shell () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode 1) (let ((shell-buffer (process-buffer (elpy-shell-get-or-create-process)))) (elpy-shell-kill) (should (not (get-buffer-process shell-buffer)))))) (ert-deftest elpy-shell-kill-should-kill-shell-and-buffer () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode 1) (let ((shell-buffer (process-buffer (elpy-shell-get-or-create-process)))) (elpy-shell-kill t) (should (not (get-buffer-process shell-buffer))) @@ -21,14 +21,13 @@ (buff2 (generate-new-buffer "buff2")) (shell-buff1 nil) (shell-buff2 nil)) + (elpy-enable) (with-current-buffer buff1 (python-mode) - (elpy-mode 1) (elpy-shell-toggle-dedicated-shell 1) (setq shell-buff1 (process-buffer (elpy-shell-get-or-create-process)))) (with-current-buffer buff2 (python-mode) - (elpy-mode 1) (elpy-shell-toggle-dedicated-shell 1) (setq shell-buff2 (process-buffer (elpy-shell-get-or-create-process)))) (elpy-shell-kill-all) @@ -42,14 +41,13 @@ (buff2 (generate-new-buffer "buff2")) (shell-buff1 nil) (shell-buff2 nil)) + (elpy-enable) (with-current-buffer buff1 (python-mode) - (elpy-mode 1) (elpy-shell-toggle-dedicated-shell 1) (setq shell-buff1 (process-buffer (elpy-shell-get-or-create-process)))) (with-current-buffer buff2 (python-mode) - (elpy-mode 1) (elpy-shell-toggle-dedicated-shell 1) (setq shell-buff2 (process-buffer (elpy-shell-get-or-create-process)))) (elpy-shell-kill-all t) diff --git a/test/elpy-shell-send-defun-test.el b/test/elpy-shell-send-defun-test.el index 0d631fdc8..64f7ad209 100644 --- a/test/elpy-shell-send-defun-test.el +++ b/test/elpy-shell-send-defun-test.el @@ -1,7 +1,7 @@ (ert-deftest elpy-shell-send-defun-should-send-defun-at-point () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (setq elpy-shell-echo-input nil) (setq elpy-shell-echo-output nil) (insert "def foo(): @@ -46,8 +46,8 @@ (ert-deftest elpy-shell-send-defun-should-send-defun-and-decorator () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (setq elpy-shell-echo-input nil) (setq elpy-shell-echo-output nil) (insert "def deco(f): diff --git a/test/elpy-shell-send-region-or-buffer-test.el b/test/elpy-shell-send-region-or-buffer-test.el index 4ae9713e5..dd8a6d20f 100644 --- a/test/elpy-shell-send-region-or-buffer-test.el +++ b/test/elpy-shell-send-region-or-buffer-test.el @@ -1,7 +1,7 @@ (ert-deftest elpy-shell-send-region-or-buffer-should-send-buffer-without-region () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (insert "print('Whole buffer sent')\n") (elpy-shell-send-region-or-buffer) (should (string-match "Whole buffer sent" @@ -11,8 +11,8 @@ (ert-deftest elpy-shell-send-region-or-buffer-should-send-region-if-active () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (insert "print('Whole buffer sent')\n" "print('Only region sent')\n") (goto-char (point-min)) @@ -28,8 +28,8 @@ (ert-deftest elpy-shell-send-region-or-buffer-should-send-portion-of-line () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(a, b):\n" " return a[0] + b[0]\n" "foo(a=[1, 2, 3], b=[1, 2])") @@ -44,8 +44,8 @@ (ert-deftest elpy-shell-send-region-or-buffer-should-display-but-not-select-buffer () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (insert "print('Yay')\n") (elpy-shell-send-region-or-buffer) (should (get-buffer-window "*Python*")) @@ -54,8 +54,8 @@ (ert-deftest elpy-shell-send-region-or-buffer-should-notify-of-removing-main () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo():\n" " pass\n" "\n" diff --git a/test/elpy-shell-send-statement-test.el b/test/elpy-shell-send-statement-test.el index a20b0b160..80974c344 100644 --- a/test/elpy-shell-send-statement-test.el +++ b/test/elpy-shell-send-statement-test.el @@ -1,7 +1,7 @@ (ert-deftest elpy-shell-send-statement-should-send-statement-at-point () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (setq elpy-shell-echo-input nil) (setq elpy-shell-echo-output nil) (insert "def foo(): @@ -48,8 +48,8 @@ (ert-deftest elpy-shell-send-statement-should-send-statement-and-decorator () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (setq elpy-shell-echo-input nil) (setq elpy-shell-echo-output nil) (insert "def deco(f): diff --git a/test/elpy-shell-set-local-shell-test.el b/test/elpy-shell-set-local-shell-test.el index 347a7500d..6888b5e4a 100644 --- a/test/elpy-shell-set-local-shell-test.el +++ b/test/elpy-shell-set-local-shell-test.el @@ -1,7 +1,7 @@ (ert-deftest elpy-shell-set-local-shell-should-set-a-local-shell () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode 1) (elpy-shell-set-local-shell "localshell") (save-excursion (elpy-shell-switch-to-shell) diff --git a/test/elpy-shell-starting-directory-test.el b/test/elpy-shell-starting-directory-test.el index 76ba6a15c..5965f83fe 100644 --- a/test/elpy-shell-starting-directory-test.el +++ b/test/elpy-shell-starting-directory-test.el @@ -2,8 +2,8 @@ (ert-deftest elpy-shell-starting-directory-in-project-mode () (elpy-testcase () (let ((elpy-shell-starting-directory 'project-root)) + (elpy-enable) (python-mode) - (elpy-mode) (elpy-shell-switch-to-shell) (should (string= default-directory (elpy-project-root)))))) @@ -11,23 +11,23 @@ (elpy-testcase () (let ((elpy-shell-starting-directory 'current-directory) (curdir default-directory)) + (elpy-enable) (python-mode) - (elpy-mode) (elpy-shell-switch-to-shell) (should (string= default-directory curdir))))) (ert-deftest elpy-shell-starting-directory-in-specific-path-mode () (elpy-testcase () (let ((elpy-shell-starting-directory temporary-file-directory)) + (elpy-enable) (python-mode) - (elpy-mode) (elpy-shell-switch-to-shell) (should (string= default-directory temporary-file-directory))))) (ert-deftest elpy-shell-starting-directory-should-fail-when-misconfigured () (elpy-testcase () (let ((elpy-shell-starting-directory 'something-else)) + (elpy-enable) (python-mode) - (elpy-mode) (should-error (elpy-shell-switch-to-shell))))) diff --git a/test/elpy-shell-switch-to-shell-test.el b/test/elpy-shell-switch-to-shell-test.el index 5f2f4d1ae..69b2c0748 100644 --- a/test/elpy-shell-switch-to-shell-test.el +++ b/test/elpy-shell-switch-to-shell-test.el @@ -1,6 +1,6 @@ (ert-deftest elpy-shell-switch-to-shell-should-switch-to-shell-buffer () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode 1) (elpy-shell-switch-to-shell) (should (eq major-mode 'inferior-python-mode)))) diff --git a/test/elpy-shell-toggle-dedicated-shell-test.el b/test/elpy-shell-toggle-dedicated-shell-test.el index 8f7ef9a4a..3a13224f5 100644 --- a/test/elpy-shell-toggle-dedicated-shell-test.el +++ b/test/elpy-shell-toggle-dedicated-shell-test.el @@ -1,7 +1,7 @@ (ert-deftest elpy-shell-toggle-dedicated-shell-should-give-dedicated-shells () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode 1) (elpy-shell-toggle-dedicated-shell) (let ((bufname (buffer-name))) (save-excursion diff --git a/test/elpy-test-test.el b/test/elpy-test-test.el index 18fc0fd28..04a646a43 100644 --- a/test/elpy-test-test.el +++ b/test/elpy-test-test.el @@ -1,7 +1,7 @@ (ert-deftest elpy-test-should-run-current-test-if-in-test () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (mletf* ((current-test (list "/dir/project" "/dir/project/test.py" "test" @@ -17,8 +17,8 @@ (ert-deftest elpy-test-should-run-current-module-if-in-test () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (mletf* ((current-test (list "/dir/project" "/dir/project/test.py" "test" @@ -34,8 +34,8 @@ (ert-deftest elpy-test-should-run-all-tests-otherwise () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (mletf* ((current-test (list "/dir/project" nil nil @@ -51,8 +51,8 @@ (ert-deftest elpy-test-should-run-all-tests-with-prefix-argument () (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (mletf* ((current-test (list "/dir/project" "/dir/project/test.py" "test" diff --git a/test/elpy-xref--apropos-test.el b/test/elpy-xref--apropos-test.el index b0a425e50..e2f8c3077 100644 --- a/test/elpy-xref--apropos-test.el +++ b/test/elpy-xref--apropos-test.el @@ -2,8 +2,8 @@ (when (featurep 'xref) (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(x, y):\n" " return x + y\n" "var1 = foo(5, 2)") diff --git a/test/elpy-xref--backend-test.el b/test/elpy-xref--backend-test.el index 182ea5b53..67122fd45 100644 --- a/test/elpy-xref--backend-test.el +++ b/test/elpy-xref--backend-test.el @@ -2,8 +2,8 @@ (when (featurep 'xref) (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(x, y):\n" " return x + y\n" "var1 = foo(5, 2)") @@ -17,8 +17,8 @@ (when (featurep 'xref) (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(x, y):\n" " return x + y\n" "var1 = foo(5, 2)") diff --git a/test/elpy-xref--definitions-test.el b/test/elpy-xref--definitions-test.el index ec76351e7..923150a0b 100644 --- a/test/elpy-xref--definitions-test.el +++ b/test/elpy-xref--definitions-test.el @@ -2,8 +2,8 @@ (when (featurep 'xref) (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(x, y):\n" " return x + y\n" "var1 = foo(5, 2)") diff --git a/test/elpy-xref--get-completion-table-test.el b/test/elpy-xref--get-completion-table-test.el index 70363d8ff..5b595cc85 100644 --- a/test/elpy-xref--get-completion-table-test.el +++ b/test/elpy-xref--get-completion-table-test.el @@ -1,8 +1,8 @@ (ert-deftest elpy-xref--get-completion-table-should-return-completion-table () (when (featurep 'xref) (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(x, y):\n" " return x + y\n" "var1 = foo(5, 2)") diff --git a/test/elpy-xref--goto-identifier-test.el b/test/elpy-xref--goto-identifier-test.el index e1ed09288..2d79a74e2 100644 --- a/test/elpy-xref--goto-identifier-test.el +++ b/test/elpy-xref--goto-identifier-test.el @@ -1,8 +1,8 @@ (ert-deftest elpy-xref--goto-identifier-should-go-to-identifier () (when (featurep 'xref) (elpy-testcase () + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(x, y):\n" " return x + y\n" "var1 = foo(5, 2)") diff --git a/test/elpy-xref--identifier-at-point-test.el b/test/elpy-xref--identifier-at-point-test.el index 822f4bce2..334838a01 100644 --- a/test/elpy-xref--identifier-at-point-test.el +++ b/test/elpy-xref--identifier-at-point-test.el @@ -2,8 +2,8 @@ (when (featurep 'xref) (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(x, y):\n" " return x + y\n" "var1 = foo(5, 2)") diff --git a/test/elpy-xref--references-test.el b/test/elpy-xref--references-test.el index f5615b650..3f7ae630d 100644 --- a/test/elpy-xref--references-test.el +++ b/test/elpy-xref--references-test.el @@ -2,8 +2,8 @@ (when (featurep 'xref) (elpy-testcase ((:project project-root "test.py")) (find-file (f-join project-root "test.py")) + (elpy-enable) (python-mode) - (elpy-mode) (insert "def foo(x, y):\n" " return x + y\n" "var1 = foo(5, 2)") diff --git a/test/test-helper.el b/test/test-helper.el index 132788233..c47497f29 100644 --- a/test/test-helper.el +++ b/test/test-helper.el @@ -124,11 +124,14 @@ itself a list where the car indicates the type of environment. names, possibly including directory names." (declare (indent 1)) `(save-buffer-excursion + (when elpy-enabled-p + (message "Elpy was not deactivated by the previous test, deactivating...") + (elpy-disable)) (with-temp-buffer (setq elpy-rpc-timeout 100) ,(elpy-testcase-transform-spec spec body)) - (when (and (boundp 'elpy-enable) - elpy-enable) + (when (and (boundp 'elpy-enabled-p) + elpy-enabled-p) (elpy-disable)))) (defun elpy-testcase-create-files (basedir filespec)