aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2019-02-10 18:12:05 -0500
committerStefan Monnier2019-02-10 18:12:05 -0500
commit54b9ee77adca44299fe8f4342498a082608b4d1b (patch)
treec423eae572ea7d0521e115f61619e9ea6606cc28
parentc8c6ad2429db961fb9410b25fec44b45da96efa1 (diff)
downloademacs-54b9ee77adca44299fe8f4342498a082608b4d1b.tar.gz
emacs-54b9ee77adca44299fe8f4342498a082608b4d1b.zip
* test/lisp/emacs-lisp/package-tests.el: Allow extra extras
(package-test--compatible-p): New function. (package-test-desc-from-buffer, package-test-install-single): Use it. (package-x-test-upload-buffer, package-x-test-upload-new-version): Don't burp in presence of extra extras.
-rw-r--r--test/lisp/emacs-lisp/package-tests.el66
1 files changed, 51 insertions, 15 deletions
diff --git a/test/lisp/emacs-lisp/package-tests.el b/test/lisp/emacs-lisp/package-tests.el
index 8f021bf6fc9..c757bccf672 100644
--- a/test/lisp/emacs-lisp/package-tests.el
+++ b/test/lisp/emacs-lisp/package-tests.el
@@ -190,12 +190,33 @@ Must called from within a `tar-mode' buffer."
190 "Return the package version as a string." 190 "Return the package version as a string."
191 (package-version-join (package-desc-version desc))) 191 (package-version-join (package-desc-version desc)))
192 192
193(defun package-test--compatible-p (pkg-desc pkg-sample &optional kind)
194 (and (cl-every (lambda (f)
195 (equal (funcall f pkg-desc)
196 (funcall f pkg-sample)))
197 (cons (if kind #'package-desc-kind #'ignore)
198 '(package-desc-name
199 package-desc-version
200 package-desc-summary
201 package-desc-reqs
202 package-desc-archive
203 package-desc-dir
204 package-desc-signed)))
205 ;; The `extras' field should contain at least the specified elements.
206 (let ((extras (package-desc-extras pkg-desc))
207 (extras-sample (package-desc-extras pkg-sample)))
208 (cl-every (lambda (sample-elem)
209 (member sample-elem extras))
210 extras-sample))))
211
193(ert-deftest package-test-desc-from-buffer () 212(ert-deftest package-test-desc-from-buffer ()
194 "Parse an elisp buffer to get a `package-desc' object." 213 "Parse an elisp buffer to get a `package-desc' object."
195 (with-package-test (:basedir "package-resources" :file "simple-single-1.3.el") 214 (with-package-test (:basedir "package-resources" :file "simple-single-1.3.el")
196 (should (equal (package-buffer-info) simple-single-desc))) 215 (should (package-test--compatible-p
216 (package-buffer-info) simple-single-desc 'kind)))
197 (with-package-test (:basedir "package-resources" :file "simple-depend-1.0.el") 217 (with-package-test (:basedir "package-resources" :file "simple-depend-1.0.el")
198 (should (equal (package-buffer-info) simple-depend-desc))) 218 (should (package-test--compatible-p
219 (package-buffer-info) simple-depend-desc 'kind)))
199 (with-package-test (:basedir "package-resources" 220 (with-package-test (:basedir "package-resources"
200 :file "multi-file-0.2.3.tar") 221 :file "multi-file-0.2.3.tar")
201 (tar-mode) 222 (tar-mode)
@@ -223,15 +244,12 @@ Must called from within a `tar-mode' buffer."
223 (with-temp-buffer 244 (with-temp-buffer
224 (insert-file-contents (expand-file-name "simple-single-pkg.el" 245 (insert-file-contents (expand-file-name "simple-single-pkg.el"
225 simple-pkg-dir)) 246 simple-pkg-dir))
226 (should (string= (buffer-string) 247 (goto-char (point-min))
227 (concat ";;; -*- no-byte-compile: t -*-\n" 248 (let ((sexp (read (current-buffer))))
228 "(define-package \"simple-single\" \"1.3\" " 249 (should (eq (car-safe sexp) 'define-package))
229 "\"A single-file package " 250 (should (package-test--compatible-p
230 "with no dependencies\" 'nil " 251 (apply #'package-desc-from-define (cdr sexp))
231 ":authors '((\"J. R. Hacker\" . \"jrh@example.com\")) " 252 simple-single-desc))))
232 ":maintainer '(\"J. R. Hacker\" . \"jrh@example.com\") "
233 ":url \"http://doodles.au\""
234 ")\n"))))
235 (should (file-exists-p autoloads-file)) 253 (should (file-exists-p autoloads-file))
236 (should-not (get-file-buffer autoloads-file))))) 254 (should-not (get-file-buffer autoloads-file)))))
237 255
@@ -580,8 +598,17 @@ Must called from within a `tar-mode' buffer."
580 (setq archive-contents 598 (setq archive-contents
581 (package-read-from-string 599 (package-read-from-string
582 (buffer-substring (point-min) (point-max))))) 600 (buffer-substring (point-min) (point-max)))))
583 (should (equal archive-contents 601 (should (equal 1 (car archive-contents)))
584 (list 1 package-x-test--single-archive-entry-1-3)))))) 602 (should (equal 2 (length archive-contents)))
603 (let ((pac (cadr archive-contents))
604 (pac-sample package-x-test--single-archive-entry-1-3))
605 (should (equal (pop pac) (pop pac-sample)))
606 (dotimes (i 4)
607 (should (equal (aref pac i) (aref pac-sample i))))
608 ;; The `extras' field should contain at least the specified elements.
609 (should (cl-every (lambda (sample-elem)
610 (member sample-elem (aref pac 4)))
611 (aref pac-sample 4)))))))
585 612
586(ert-deftest package-x-test-upload-new-version () 613(ert-deftest package-x-test-upload-new-version ()
587 "Test uploading a new version of a package" 614 "Test uploading a new version of a package"
@@ -601,8 +628,17 @@ Must called from within a `tar-mode' buffer."
601 (setq archive-contents 628 (setq archive-contents
602 (package-read-from-string 629 (package-read-from-string
603 (buffer-substring (point-min) (point-max))))) 630 (buffer-substring (point-min) (point-max)))))
604 (should (equal archive-contents 631 (should (equal 1 (car archive-contents)))
605 (list 1 package-x-test--single-archive-entry-1-4)))))) 632 (should (equal 2 (length archive-contents)))
633 (let ((pac (cadr archive-contents))
634 (pac-sample package-x-test--single-archive-entry-1-4))
635 (should (equal (pop pac) (pop pac-sample)))
636 (dotimes (i 4)
637 (should (equal (aref pac i) (aref pac-sample i))))
638 ;; The `extras' field should contain at least the specified elements.
639 (should (cl-every (lambda (sample-elem)
640 (member sample-elem (aref pac 4)))
641 (aref pac-sample 4)))))))
606 642
607(ert-deftest package-test-get-deps () 643(ert-deftest package-test-get-deps ()
608 "Test `package--get-deps' with complex structures." 644 "Test `package--get-deps' with complex structures."