branch: externals/elpa
commit a807b4f30b6128f64d1ad44271e62a39a9623dc8
Author: João Távora <joaotav...@gmail.com>
Commit: João Távora <joaotav...@gmail.com>

    Some test-related cleanup
    
    * Makefile (ELPADEPS): Change order of ELPADEPS.
    
    * eglot-tests.el (eglot--call-with-fixture): Bind
    python-indent-guess-indent-offset-verbose here.
    (eglot--tests--python-mode-bindings): Remove.
    (auto-detect-running-server, auto-shutdown, auto-reconnect)
    (basic-diagnostics, rename-a-symbol, basic-completions, basic-xref)
    (snippet-completions, snippet-completions-with-company)
    (hover-after-completions, hover-multiline-doc-locus)
    (python-autopep-formatting, python-yapf-formatting, json-basic)
    (eglot-ensure, slow-sync-connection-wait, slow-sync-connection-intime)
    (slow-async-connection, slow-sync-timeout): Don't use
    eglot--tests--python-mode-bindings.
    (eglot--guessing-contact): Reindent.
---
 Makefile       |   4 +-
 eglot-tests.el | 117 ++++++++++++++++++++++++---------------------------------
 2 files changed, 51 insertions(+), 70 deletions(-)

diff --git a/Makefile b/Makefile
index 1a39c65..dfbd69f 100644
--- a/Makefile
+++ b/Makefile
@@ -13,11 +13,11 @@ ELCFILES := $(ELFILES:.el=.elc)
 
 ELPADEPS ?=--eval '(package-initialize)'                       \
            --eval '(package-refresh-contents)'                 \
-           --eval '(package-install (quote company))'          \
            --eval '(package-install (quote jsonrpc))'          \
-           --eval '(package-install (quote xref))'             \
            --eval '(package-install (quote project))'          \
+           --eval '(package-install (quote xref))'             \
            --eval '(package-install (quote eldoc))'            \
+           --eval '(package-install (quote company))'          \
            --eval '(package-install (quote yasnippet))'                \
            --eval '(package-install                            \
                       (cadr (assoc (quote flymake)             \
diff --git a/eglot-tests.el b/eglot-tests.el
index f701a01..059a565 100644
--- a/eglot-tests.el
+++ b/eglot-tests.el
@@ -88,6 +88,8 @@ then restored."
                ;; Prevent user-configuration to have an influence on
                ;; language servers. (See github#441)
                (cons "XDG_CONFIG_HOME=/dev/null" process-environment))
+              ;; Prevent "Can't guess python-indent-offset ..." messages.
+              (python-indent-guess-indent-offset-verbose . nil)
               (eglot-server-initialized-hook
                (lambda (server) (push server new-servers))))
           (setq created-files (mapcan #'eglot--make-file-or-dir file-specs))
@@ -257,11 +259,6 @@ Pass TIMEOUT to `eglot--with-timeout'."
          (eglot-connect-timeout timeout))
     (apply #'eglot--connect (eglot--guess-contact))))
 
-(defvar eglot--tests--python-mode-bindings
-  '(;; Prevent "Can't guess python-indent-offset ..." messages.
-    (python-indent-guess-indent-offset-verbose . nil))
-  "Alist of variable bindings to be used in tests involving `python-mode'.")
-
 
 ;;; Unit tests
 
@@ -313,8 +310,7 @@ Pass TIMEOUT to `eglot--with-timeout'."
     (eglot--with-fixture
         `(("project" . (("coiso.py" . "bla")
                         ("merdix.py" . "bla")))
-          ("anotherproject" . (("cena.py" . "bla")))
-          ,@eglot--tests--python-mode-bindings)
+          ("anotherproject" . (("cena.py" . "bla"))))
       (with-current-buffer
           (eglot--find-file-noselect "project/coiso.py")
         (should (setq server (eglot--tests-connect)))
@@ -333,8 +329,7 @@ Pass TIMEOUT to `eglot--with-timeout'."
   (let (server
         buffer)
     (eglot--with-fixture
-        `(("project" . (("coiso.py" . "def coiso: pass")))
-          ,@eglot--tests--python-mode-bindings)
+        `(("project" . (("coiso.py" . "def coiso: pass"))))
       (with-current-buffer
           (setq buffer (eglot--find-file-noselect "project/coiso.py"))
         (should (setq server (eglot--tests-connect)))
@@ -353,8 +348,7 @@ Pass TIMEOUT to `eglot--with-timeout'."
   (let (server (eglot-autoreconnect 1))
     (eglot--with-fixture
         `(("project" . (("coiso.py" . "bla")
-                        ("merdix.py" . "bla")))
-          ,@eglot--tests--python-mode-bindings)
+                        ("merdix.py" . "bla"))))
       (with-current-buffer
           (eglot--find-file-noselect "project/coiso.py")
         (should (setq server (eglot--tests-connect)))
@@ -412,8 +406,8 @@ Pass TIMEOUT to `eglot--with-timeout'."
   (skip-unless (executable-find "pyls"))
   (eglot--with-fixture
       `(("diag-project" .
-         (("main.py" . "def foo(): if True pass"))) ; colon missing after True
-        ,@eglot--tests--python-mode-bindings)
+                                        ; colon missing after True
+         (("main.py" . "def foo(): if True pass"))))
     (with-current-buffer
         (eglot--find-file-noselect "diag-project/main.py")
       (eglot--sniffing (:server-notifications s-notifs)
@@ -466,8 +460,7 @@ Pass TIMEOUT to `eglot--with-timeout'."
   (eglot--with-fixture
       `(("rename-project"
          . (("main.py" .
-             "def foo (bar) : 1 + bar\n\ndef bar() : pass")))
-        ,@eglot--tests--python-mode-bindings)
+             "def foo (bar) : 1 + bar\n\ndef bar() : pass"))))
     (with-current-buffer
         (eglot--find-file-noselect "rename-project/main.py")
       (eglot--tests-connect)
@@ -480,8 +473,7 @@ Pass TIMEOUT to `eglot--with-timeout'."
   "Test basic autocompletion in a python LSP"
   (skip-unless (executable-find "pyls"))
   (eglot--with-fixture
-      `(("project" . (("something.py" . "import sys\nsys.exi")))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . "import sys\nsys.exi"))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (should (eglot--tests-connect))
@@ -493,8 +485,7 @@ Pass TIMEOUT to `eglot--with-timeout'."
   "Test basic xref functionality in a python LSP"
   (skip-unless (executable-find "pyls"))
   (eglot--with-fixture
-      `(("project" . (("something.py" . "def foo(): pass\ndef bar(): foo()")))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . "def foo(): pass\ndef bar(): foo()"))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (should (eglot--tests-connect))
@@ -513,8 +504,7 @@ def foobazquuz(d, e, f): pass
   (skip-unless (and (executable-find "pyls")
                     (functionp 'yas-minor-mode)))
   (eglot--with-fixture
-      `(("project" . (("something.py" . ,eglot--test-python-buffer)))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . ,eglot--test-python-buffer))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (yas-minor-mode 1)
@@ -535,8 +525,7 @@ def foobazquuz(d, e, f): pass
                     (functionp 'yas-minor-mode)
                     (functionp 'company-complete)))
   (eglot--with-fixture
-      `(("project" . (("something.py" . ,eglot--test-python-buffer)))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . ,eglot--test-python-buffer))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (yas-minor-mode 1)
@@ -561,25 +550,23 @@ def foobazquuz(d, e, f): pass
   ;; `eglot-put-doc-in-help-buffer' to nil.
   (let ((eglot-put-doc-in-help-buffer nil))
     (eglot--with-fixture
-        `(("project" . (("something.py" . "import sys\nsys.exi")))
-          ,@eglot--tests--python-mode-bindings)
-     (with-current-buffer
-         (eglot--find-file-noselect "project/something.py")
-       (should (eglot--tests-connect))
-       (goto-char (point-max))
-       (setq eldoc-last-message nil)
-       (completion-at-point)
-       (should (looking-back "sys.exit"))
-       (while (not eldoc-last-message) (accept-process-output nil 0.1))
-       (should (string-match "^exit" eldoc-last-message))))))
+        `(("project" . (("something.py" . "import sys\nsys.exi"))))
+      (with-current-buffer
+          (eglot--find-file-noselect "project/something.py")
+        (should (eglot--tests-connect))
+        (goto-char (point-max))
+        (setq eldoc-last-message nil)
+        (completion-at-point)
+        (should (looking-back "sys.exit"))
+        (while (not eldoc-last-message) (accept-process-output nil 0.1))
+        (should (string-match "^exit" eldoc-last-message))))))
 
 (ert-deftest hover-multiline-doc-locus ()
   "Test if suitable amount of lines of hover info are shown."
   (skip-unless (executable-find "pyls"))
   (eglot--with-fixture
       `(("project" . (("hover-first.py" . "from datetime import datetime")))
-        (eglot-put-doc-in-help-buffer nil)
-        ,@eglot--tests--python-mode-bindings)
+        (eglot-put-doc-in-help-buffer nil))
     (with-current-buffer
         (eglot--find-file-noselect "project/hover-first.py")
       (should (eglot--tests-connect))
@@ -607,8 +594,7 @@ pyls prefers autopep over yafp, despite its README stating 
the contrary."
   (skip-unless (and (executable-find "pyls")
                     (executable-find "autopep8")))
   (eglot--with-fixture
-      `(("project" . (("something.py" . "def a():pass\n\ndef b():pass")))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . "def a():pass\n\ndef b():pass"))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (should (eglot--tests-connect))
@@ -629,8 +615,7 @@ pyls prefers autopep over yafp, despite its README stating 
the contrary."
                     (not (executable-find "autopep8"))
                     (executable-find "yapf")))
   (eglot--with-fixture
-      `(("project" . (("something.py" . "def a():pass\ndef b():pass")))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . "def a():pass\ndef b():pass"))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (should (eglot--tests-connect))
@@ -678,23 +663,23 @@ pyls prefers autopep over yafp, despite its README 
stating the contrary."
   "Test basic autocompletion in vscode-json-languageserver"
   (skip-unless (executable-find "vscode-json-languageserver"))
   (eglot--with-fixture
-   '(("project" .
-      (("p.json" . "{\"foo.b")
-       ("s.json" . "{\"properties\":{\"foo.bar\":{\"default\":\"fb\"}}}")
-       (".git" . nil))))
-   (with-current-buffer
-       (eglot--find-file-noselect "project/p.json")
-     (yas-minor-mode)
-     (goto-char 2)
-     (insert "\"$schema\": \"file://"
-             (file-name-directory buffer-file-name) "s.json\",")
-     (let ((eglot-server-programs
-            '((js-mode . ("vscode-json-languageserver" "--stdio")))))
-       (goto-char (point-max))
-       (should (eglot--tests-connect))
-       (completion-at-point)
-       (should (looking-back "\"foo.bar\": \""))
-       (should (looking-at "fb\"$"))))))
+      '(("project" .
+         (("p.json" . "{\"foo.b")
+          ("s.json" . "{\"properties\":{\"foo.bar\":{\"default\":\"fb\"}}}")
+          (".git" . nil))))
+    (with-current-buffer
+        (eglot--find-file-noselect "project/p.json")
+      (yas-minor-mode)
+      (goto-char 2)
+      (insert "\"$schema\": \"file://"
+              (file-name-directory buffer-file-name) "s.json\",")
+      (let ((eglot-server-programs
+             '((js-mode . ("vscode-json-languageserver" "--stdio")))))
+        (goto-char (point-max))
+        (should (eglot--tests-connect))
+        (completion-at-point)
+        (should (looking-back "\"foo.bar\": \""))
+        (should (looking-at "fb\"$"))))))
 
 (ert-deftest eglot-lsp-abiding-column ()
   "Test basic `eglot-lsp-abiding-column' and 
`eglot-move-to-lsp-abiding-column'"
@@ -729,8 +714,7 @@ pyls prefers autopep over yafp, despite its README stating 
the contrary."
         (python-mode-hook
          (eglot-ensure
           (lambda ()
-            (remove-hook 'flymake-diagnostic-functions 'python-flymake))))
-        ,@eglot--tests--python-mode-bindings)
+            (remove-hook 'flymake-diagnostic-functions 'python-flymake)))))
     (let (server)
       ;; need `ert-simulate-command' because `eglot-ensure'
       ;; relies on `post-command-hook'.
@@ -747,8 +731,7 @@ pyls prefers autopep over yafp, despite its README stating 
the contrary."
   "Connect with `eglot-sync-connect' set to t."
   (skip-unless (executable-find "pyls"))
   (eglot--with-fixture
-      `(("project" . (("something.py" . "import sys\nsys.exi")))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . "import sys\nsys.exi"))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (let ((eglot-sync-connect t)
@@ -760,8 +743,7 @@ pyls prefers autopep over yafp, despite its README stating 
the contrary."
   "Connect synchronously with `eglot-sync-connect' set to 2."
   (skip-unless (executable-find "pyls"))
   (eglot--with-fixture
-      `(("project" . (("something.py" . "import sys\nsys.exi")))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . "import sys\nsys.exi"))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (let ((eglot-sync-connect 2)
@@ -773,8 +755,7 @@ pyls prefers autopep over yafp, despite its README stating 
the contrary."
   "Connect asynchronously with `eglot-sync-connect' set to 2."
   (skip-unless (executable-find "pyls"))
   (eglot--with-fixture
-      `(("project" . (("something.py" . "import sys\nsys.exi")))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . "import sys\nsys.exi"))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (let ((eglot-sync-connect 1)
@@ -790,8 +771,7 @@ pyls prefers autopep over yafp, despite its README stating 
the contrary."
   "Failed attempt at connection synchronously."
   (skip-unless (executable-find "pyls"))
   (eglot--with-fixture
-      `(("project" . (("something.py" . "import sys\nsys.exi")))
-        ,@eglot--tests--python-mode-bindings)
+      `(("project" . (("something.py" . "import sys\nsys.exi"))))
     (with-current-buffer
         (eglot--find-file-noselect "project/something.py")
       (let ((eglot-sync-connect t)
@@ -906,7 +886,8 @@ pyls prefers autopep over yafp, despite its README stating 
the contrary."
         (((CodeAction) title command)
          (list title command)))))))
 
-(cl-defmacro eglot--guessing-contact ((interactive-sym prompt-args-sym
+(cl-defmacro eglot--guessing-contact ((interactive-sym
+                                       prompt-args-sym
                                        guessed-class-sym guessed-contact-sym)
                                       &body body)
   "Evaluate BODY twice, binding results of `eglot--guess-contact'.

Reply via email to