~ruther/guix-local

239f46325d554978cfc2d9dc63f1943527bfd360 — Ricardo Wurmus 9 years ago 36a318a
tests: Mock up http-fetch in import test.

This is a follow-up to commit 63773200d7ac68fcaee6efd9ffe8ea7aa3fafa38.

* tests/pypi.scm ("pypi->guix-package, wheels"): Add mock definition of
"http-fetch".
1 files changed, 34 insertions(+), 30 deletions(-)

M tests/pypi.scm
M tests/pypi.scm => tests/pypi.scm +34 -30
@@ 148,10 148,6 @@ baz > 13.37")
  (mock ((guix import utils) url-fetch
         (lambda (url file-name)
           (match url
             ("https://pypi.python.org/pypi/foo/json"
              (with-output-to-file file-name
                (lambda ()
                  (display test-json))))
             ("https://example.com/foo-1.0.0.tar.gz"
               (begin
                 (mkdir "foo-1.0.0")


@@ 175,31 171,39 @@ baz > 13.37")
                   (rename-file zip-file file-name))
                 (delete-file-recursively "foo-1.0.0.dist-info")))
             (_ (error "Unexpected URL: " url)))))
    (match (pypi->guix-package "foo")
      (('package
         ('name "python-foo")
         ('version "1.0.0")
         ('source ('origin
                    ('method 'url-fetch)
                    ('uri (string-append "https://example.com/foo-"
                                         version ".tar.gz"))
                    ('sha256
                     ('base32
                      (? string? hash)))))
         ('build-system 'python-build-system)
         ('propagated-inputs
          ('quasiquote
           (("python-bar" ('unquote 'python-bar))
            ("python-baz" ('unquote 'python-baz))
            ("python-setuptools" ('unquote 'python-setuptools)))))
         ('home-page "http://example.com")
         ('synopsis "summary")
         ('description "summary")
         ('license 'license:lgpl2.0))
       (string=? (bytevector->nix-base32-string
                  test-source-hash)
                 hash))
      (x
       (pk 'fail x #f)))))
        (mock ((guix http-client) http-fetch
               (lambda (url)
                 (match url
                   ("https://pypi.python.org/pypi/foo/json"
                    (values (open-input-string test-json)
                            (string-length test-json)))
                   ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" #f)
                   (_ (error "Unexpected URL: " url)))))
              (match (pypi->guix-package "foo")
                (('package
                   ('name "python-foo")
                   ('version "1.0.0")
                   ('source ('origin
                              ('method 'url-fetch)
                              ('uri (string-append "https://example.com/foo-"
                                                   version ".tar.gz"))
                              ('sha256
                               ('base32
                                (? string? hash)))))
                   ('build-system 'python-build-system)
                   ('propagated-inputs
                    ('quasiquote
                     (("python-bar" ('unquote 'python-bar))
                      ("python-baz" ('unquote 'python-baz))
                      ("python-setuptools" ('unquote 'python-setuptools)))))
                   ('home-page "http://example.com")
                   ('synopsis "summary")
                   ('description "summary")
                   ('license 'license:lgpl2.0))
                 (string=? (bytevector->nix-base32-string
                            test-source-hash)
                           hash))
                (x
                 (pk 'fail x #f))))))

(test-end "pypi")