~ruther/guix-local

694b317c2dfac5f8b284a5831e20d89cc112bd6b — Eric Bavier 11 years ago 1ff2619
tests: import: Factorize utility function.

* tests/pypi.scm (mock): Move this...
* guix/tests.scm: to here.
2 files changed, 12 insertions(+), 8 deletions(-)

M guix/tests.scm
M tests/pypi.scm
M guix/tests.scm => guix/tests.scm +11 -0
@@ 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.

M tests/pypi.scm => tests/pypi.scm +1 -8
@@ 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\": {