]> git.eshelyaron.com Git - emacs.git/commitdiff
Use lexical-binding in epg-config.el and add tests
authorStefan Kangas <stefan@marxist.se>
Thu, 1 Apr 2021 09:07:06 +0000 (11:07 +0200)
committerStefan Kangas <stefan@marxist.se>
Thu, 1 Apr 2021 09:07:06 +0000 (11:07 +0200)
* lisp/epg-config.el: Use lexical-binding.
(epg-find-configuration): Improve error message.
* test/lisp/epg-config-tests.el: New file.

lisp/epg-config.el
test/lisp/epg-config-tests.el [new file with mode: 0644]

index 59d097c91f0606a44dad198c6a410970efee470f..d32c8c897c7dea90bdb3f707cc2db9c1c3062c84 100644 (file)
@@ -1,4 +1,4 @@
-;;; epg-config.el --- configuration of the EasyPG Library
+;;; epg-config.el --- configuration of the EasyPG Library  -*- lexical-binding: t -*-
 
 ;; Copyright (C) 2006-2021 Free Software Foundation, Inc.
 
@@ -21,6 +21,8 @@
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
+;;; Commentary:
+
 ;;; Code:
 ;;; Prelude
 
@@ -157,7 +159,7 @@ version requirement is met."
     (setq program-alist epg-config--program-alist))
   (let ((entry (assq protocol program-alist)))
     (unless entry
-      (error "Unknown protocol %S" protocol))
+      (error "Unknown protocol `%S'" protocol))
     (cl-destructuring-bind (symbol . alist)
         (cdr entry)
       (let ((constructor
diff --git a/test/lisp/epg-config-tests.el b/test/lisp/epg-config-tests.el
new file mode 100644 (file)
index 0000000..fba61e5
--- /dev/null
@@ -0,0 +1,47 @@
+;;; epg-config-tests.el --- Test suite for epg.el  -*- lexical-binding: t -*-
+
+;; Copyright (C) 2021 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'ert)
+(require 'epg-config)
+
+(ert-deftest epg-config-test-epg-find-configuration ()
+  (skip-unless (executable-find "gpg2"))
+  (should (assq 'version (epg-find-configuration 'OpenPGP))))
+
+(ert-deftest epg-config-test-epg-find-configuration/unknown-protocol ()
+  (should-error (epg-find-configuration 'does-not-exist)))
+
+(ert-deftest epg-config-test-epg-check-configuration ()
+  (should (epg-check-configuration '((version . "1.0")) "0.9"))
+  (should (epg-check-configuration '((version . "1.0")) "1.0"))
+  (should-error (epg-check-configuration '((version . "1.0")) "1.1"))
+  (should-error (epg-check-configuration '((version . "1.0")) 'foo))
+  (should-error (epg-check-configuration '((version . "1.0")) "foo")))
+
+(ert-deftest epg-config-test-epg-required-version-p ()
+  (skip-unless (executable-find "gpg2"))
+  (should (epg-required-version-p 'OpenPGP "1.0")))
+
+(provide 'epg-config-tests)
+
+;;; epg-config-tests.el ends here