summaryrefslogtreecommitdiff
path: root/tests/debbugs.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2020-05-10 13:25:56 +0200
committerRicardo Wurmus <rekado@elephly.net>2020-05-10 13:30:39 +0200
commit37742c886f4ab15b1d74331f399a0ca3d6412901 (patch)
tree847c5c3da932390974957a90cdf64429c8b0b93e /tests/debbugs.scm
parentdcc9090d121df770e9e1289064b2ef3ecb7a6463 (diff)
debbugs: Add bug-id->summary-file.
* mumi/debbugs.scm (bug-id->summary-file): New procedure. * tests/debbugs.scm: New file. * tests/data/spool/archive/95/26095.{report,status,summary}: New files. * Makefile.am (SCM_TESTS): Add tests/debbugs.scm. (EXTRA_DIST): Include test data.
Diffstat (limited to 'tests/debbugs.scm')
-rw-r--r--tests/debbugs.scm46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/debbugs.scm b/tests/debbugs.scm
new file mode 100644
index 0000000..6631b9f
--- /dev/null
+++ b/tests/debbugs.scm
@@ -0,0 +1,46 @@
+;;; mumi -- Mediocre, uh, mail interface
+;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
+;;;
+;;; This program is free software: you can redistribute it and/or
+;;; modify it under the terms of the GNU Affero General Public License
+;;; as published by the Free Software Foundation, either version 3 of
+;;; the License, or (at your option) any later version.
+;;;
+;;; This program 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
+;;; Affero General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU Affero General Public
+;;; License along with this program. If not, see
+;;; <http://www.gnu.org/licenses/>.
+
+(define-module (test-debbugs)
+ #:use-module (mumi config)
+ #:use-module (mumi debbugs)
+ #:use-module (ice-9 match)
+ #:use-module (srfi srfi-64))
+
+(define-syntax-rule (mock (module proc replacement) body ...)
+ "Within BODY, replace the definition of PROC from MODULE with the definition
+given by REPLACEMENT."
+ (let* ((m (resolve-module 'module))
+ (original (module-ref m 'proc)))
+ (dynamic-wind
+ (lambda () (module-set! m 'proc replacement))
+ (lambda () body ...)
+ (lambda () (module-set! m 'proc original)))))
+
+(test-begin "debbugs")
+
+(define data-dir
+ (string-append (getenv "abs_top_srcdir") "/tests/data"))
+
+(test-equal "bug-id->summary-file: return archive summary file"
+ (format #f "~a/spool/archive/95/26095.summary" data-dir)
+ (mock ((mumi config) %config
+ (match-lambda
+ ('data-dir data-dir)))
+ ((@@ (mumi debbugs) bug-id->summary-file) 26095)))
+
+(test-end "debbugs")