From 694b317c2dfac5f8b284a5831e20d89cc112bd6b Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 8 Jan 2015 14:41:15 -0600 Subject: tests: import: Factorize utility function. * tests/pypi.scm (mock): Move this... * guix/tests.scm: to here. --- guix/tests.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'guix/tests.scm') diff --git a/guix/tests.scm b/guix/tests.scm index 82ae7e208..36341cb4c 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. -- cgit v1.3