mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
* test/automated/package-test.el: Test async functionality
(package-test-update-archives-async): New test
This commit is contained in:
parent
ccade56fbe
commit
7cae5c3cb6
2 changed files with 50 additions and 1 deletions
21
test/automated/data/package/package-test-server.py
Normal file
21
test/automated/data/package/package-test-server.py
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import sys
|
||||
import BaseHTTPServer
|
||||
from SimpleHTTPServer import SimpleHTTPRequestHandler
|
||||
|
||||
|
||||
HandlerClass = SimpleHTTPRequestHandler
|
||||
ServerClass = BaseHTTPServer.HTTPServer
|
||||
Protocol = "HTTP/1.0"
|
||||
|
||||
if sys.argv[1:]:
|
||||
port = int(sys.argv[1])
|
||||
else:
|
||||
port = 8000
|
||||
server_address = ('127.0.0.1', port)
|
||||
|
||||
HandlerClass.protocol_version = Protocol
|
||||
httpd = ServerClass(server_address, HandlerClass)
|
||||
|
||||
sa = httpd.socket.getsockname()
|
||||
print "Serving HTTP on", sa[0], "port", sa[1], "..."
|
||||
httpd.serve_forever()
|
||||
|
|
@ -103,6 +103,7 @@
|
|||
(cl-defmacro with-package-test ((&optional &key file
|
||||
basedir
|
||||
install
|
||||
location
|
||||
update-news
|
||||
upload-base)
|
||||
&rest body)
|
||||
|
|
@ -112,7 +113,7 @@
|
|||
(process-environment (cons (format "HOME=%s" package-test-user-dir)
|
||||
process-environment))
|
||||
(package-user-dir package-test-user-dir)
|
||||
(package-archives `(("gnu" . ,package-test-data-dir)))
|
||||
(package-archives `(("gnu" . ,(or ,location package-test-data-dir))))
|
||||
(default-directory package-test-file-dir)
|
||||
abbreviated-home-dir
|
||||
package--initialized
|
||||
|
|
@ -336,6 +337,33 @@ Must called from within a `tar-mode' buffer."
|
|||
(package-menu-refresh)
|
||||
(should (package-installed-p 'simple-single '(1 4)))))))
|
||||
|
||||
(ert-deftest package-test-update-archives-async ()
|
||||
"Test updating package archives asynchronously."
|
||||
(skip-unless (executable-find "python2"))
|
||||
(with-package-test (:basedir
|
||||
package-test-data-dir
|
||||
:location "http://0.0.0.0:8000/")
|
||||
(let* ((package-menu-async t)
|
||||
(process (start-process
|
||||
"package-server" "package-server-buffer"
|
||||
(executable-find "python2")
|
||||
(expand-file-name "package-test-server.py"))))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(list-packages)
|
||||
(should package--downloads-in-progress)
|
||||
(should mode-line-process)
|
||||
(should-not (string= (format-mode-line mode-line-process) ""))
|
||||
(should-not
|
||||
(with-timeout (10 'timeout)
|
||||
(while package--downloads-in-progress
|
||||
(accept-process-output nil 1))
|
||||
nil))
|
||||
(goto-char (point-min))
|
||||
(should
|
||||
(search-forward-regexp "^ +simple-single" nil t)))
|
||||
(kill-process process)))))
|
||||
|
||||
(ert-deftest package-test-describe-package ()
|
||||
"Test displaying help for a package."
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue