summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/tests.scm11
-rw-r--r--tests/pypi.scm9
2 files changed, 12 insertions, 8 deletions
diff --git a/guix/tests.scm b/guix/tests.scm
index 82ae7e2084..36341cb4cc 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -27,6 +27,7 @@
   #:export (open-connection-for-tests
             random-text
             random-bytevector
+            mock
             with-derivation-narinfo
             dummy-package))
 
@@ -70,6 +71,16 @@
             (loop (1+ i)))
           bv))))
 
+(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)))))
+
 
 ;;;
 ;;; Narinfo files, as used by the substituter.
diff --git a/tests/pypi.scm b/tests/pypi.scm
index 53c34d9e93..45cf7cac4f 100644
--- a/tests/pypi.scm
+++ b/tests/pypi.scm
@@ -20,17 +20,10 @@
   #:use-module (guix import pypi)
   #:use-module (guix base32)
   #:use-module (guix hash)
+  #:use-module (guix tests)
   #:use-module (srfi srfi-64)
   #:use-module (ice-9 match))
 
-(define-syntax-rule (mock (module proc replacement) body ...)
-  (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)))))
-
 (define test-json
   "{
   \"info\": {