summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2018-01-01 11:55:40 +0000
committerTobias Geerinckx-Rice <me@tobias.gr>2018-01-02 00:09:16 +0100
commitd948fe7ce84a3e072eb503a7b76045b1033ba13d (patch)
tree6eb2370624c918b85e35e97072327d358b15795f /gnu
parentf1a2cb94ca52cab62831b1b18a9f78729fa24d03 (diff)
downloadguix-d948fe7ce84a3e072eb503a7b76045b1033ba13d.tar.gz
gnu: Add perl-test-mockmodule.
* gnu/packages/perl-check.scm (perl-test-mockmodule): New public variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/perl-check.scm32
1 files changed, 31 insertions, 1 deletions
diff --git a/gnu/packages/perl-check.scm b/gnu/packages/perl-check.scm
index 1a66a0fc51..121ebec414 100644
--- a/gnu/packages/perl-check.scm
+++ b/gnu/packages/perl-check.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
-;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -611,6 +611,36 @@ memory_cycle_ok( $object );
 @end example")
     (license artistic2.0)))
 
+(define-public perl-test-mockmodule
+  (package
+    (name "perl-test-mockmodule")
+    (version "0.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://cpan/authors/id/G/GF/GFRANKS/"
+                           "Test-MockModule-" version ".tar.gz"))
+       (sha256
+        (base32 "0lwh6fvnc16r6d74vvh5h4b5a1spcslpjb3mcqbv23k01lm78wvl"))))
+    (build-system perl-build-system)
+    (native-inputs
+     `(("perl-module-build" ,perl-module-build)
+       ;; For tests.
+       ("perl-test-pod" ,perl-test-pod)
+       ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+    (propagated-inputs
+     `(("perl-super" ,perl-super)))
+    (home-page "http://search.cpan.org/dist/Test-MockModule/")
+    (synopsis "Override subroutines in a module for unit testing")
+    (description
+     "@code{Test::MockModule} lets you temporarily redefine subroutines in other
+packages for the purposes of unit testing.  A @code{Test::MockModule} object is
+set up to mock subroutines for a given module.  The mocked object remembers the
+original subroutine so it can be easily restored.  This happens automatically
+when all @code{MockModule} objects for the given module go out of scope, or when
+you @code{unmock()} the subroutine.")
+    (license gpl3)))
+
 (define-public perl-test-mockobject
   (package
     (name "perl-test-mockobject")