mirror of
https://codeberg.org/guix/guix.git
synced 2026-01-25 03:55:08 -06:00
import: pypi: Fix tests.
* guix/import/pypi.scm (unzip-command): Use invoke instead of system*. (read-wheel-metadata): Adapt accordingly. (guess-requirements-from-wheel): Improve readability. * tests/import/pypi.scm (parse-wheel-metadata): Add test (used to isolate the issue in another test). (pypi->guix-package, no wheel): Remove python-wheel from the result. (pypi->guix-package, no usable requirement file, no wheel.): Likewise. (pypi->guix-package, package name contains \"-\" followed by digits): Likewise. (package-latest-release): Likewise. (pypi->guix-package, no requires.txt, but wheel): Likewise. Also improve readability.
This commit is contained in:
parent
425e0973c8
commit
b09ad239bc
2 changed files with 18 additions and 21 deletions
|
|
@ -303,8 +303,9 @@ not succeed."
|
|||
(mlet* %store-monad
|
||||
((drv (lower-object unzip))
|
||||
(built (built-derivations (list drv))))
|
||||
(return (string-append (derivation->output-path drv) "/bin/unzip"))))))))
|
||||
(system* (string-append unzip-cmd (string-join args " " 'prefix)))))
|
||||
(return (string-append (derivation->output-path drv)
|
||||
"/bin/unzip"))))))))
|
||||
(apply invoke unzip-cmd args)))
|
||||
|
||||
(define (parse-requires.txt requires.txt)
|
||||
"Given REQUIRES.TXT, a path to a Setuptools requires.txt file, return a list
|
||||
|
|
@ -414,10 +415,9 @@ be extracted in a temporary directory."
|
|||
(metadata (string-append dirname "/METADATA")))
|
||||
(call-with-temporary-directory
|
||||
(lambda (dir)
|
||||
(if (zero?
|
||||
(parameterize ((current-error-port (%make-void-port "rw+"))
|
||||
(if (parameterize ((current-error-port (%make-void-port "rw+"))
|
||||
(current-output-port (%make-void-port "rw+")))
|
||||
(unzip-command wheel-archive "-d" dir metadata)))
|
||||
(unzip-command wheel-archive "-d" dir metadata))
|
||||
(parse-wheel-metadata (string-append dir "/" metadata))
|
||||
(begin
|
||||
(warning
|
||||
|
|
@ -430,8 +430,7 @@ be extracted in a temporary directory."
|
|||
(call-with-temporary-output-file
|
||||
(lambda (temp port)
|
||||
(if wheel-url
|
||||
(and (url-fetch wheel-url temp)
|
||||
(read-wheel-metadata temp))
|
||||
(and=> (url-fetch wheel-url temp) read-wheel-metadata)
|
||||
(list '() '())))))
|
||||
|
||||
(define (guess-requirements-from-pyproject.toml dir)
|
||||
|
|
|
|||
|
|
@ -270,6 +270,12 @@ files specified by SPECS. Return its file name."
|
|||
call-with-input-string)
|
||||
(parse-requires.txt test-requires.txt-beaker)))
|
||||
|
||||
(test-equal "parse-wheel-metadata"
|
||||
(list '("baz" "bar") '("pytest"))
|
||||
(mock ((ice-9 ports) call-with-input-file
|
||||
call-with-input-string)
|
||||
(parse-wheel-metadata test-metadata)))
|
||||
|
||||
(test-equal "parse-wheel-metadata, with extras"
|
||||
(list '("wrapt" "bar") '("tox" "bumpversion"))
|
||||
(mock ((ice-9 ports) call-with-input-file
|
||||
|
|
@ -328,8 +334,7 @@ files specified by SPECS. Return its file name."
|
|||
(build-system pyproject-build-system)
|
||||
(propagated-inputs (list python-bar python-foo))
|
||||
(native-inputs (list python-pytest
|
||||
python-setuptools
|
||||
python-wheel))
|
||||
python-setuptools))
|
||||
(home-page "https://example.com")
|
||||
(synopsis "summary")
|
||||
(description "summary.")
|
||||
|
|
@ -431,8 +436,7 @@ files specified by SPECS. Return its file name."
|
|||
(with-pypi `(("/foo-1.0.0.tar.gz" 200 ,(file-dump tarball))
|
||||
("/foo-1.0.0-py2.py3-none-any.whl"
|
||||
200 ,(file-dump wheel))
|
||||
("/foo/json" 200 ,(lambda (port)
|
||||
(display (foo-json) port))))
|
||||
("/foo/json" 200 ,(cut display (foo-json) <>)))
|
||||
;; Not clearing the memoization cache here would mean returning the value
|
||||
;; computed in the previous test.
|
||||
(invalidate-memoization! pypi->guix-package)
|
||||
|
|
@ -448,8 +452,7 @@ files specified by SPECS. Return its file name."
|
|||
(build-system pyproject-build-system)
|
||||
(propagated-inputs (list python-bar python-baz))
|
||||
(native-inputs (list python-pytest
|
||||
python-setuptools
|
||||
python-wheel))
|
||||
python-setuptools))
|
||||
(home-page "https://example.com")
|
||||
(synopsis "summary")
|
||||
(description "summary.")
|
||||
|
|
@ -478,7 +481,7 @@ files specified by SPECS. Return its file name."
|
|||
(sha256
|
||||
(base32 ,(? string? hash)))))
|
||||
(build-system pyproject-build-system)
|
||||
(native-inputs (list python-setuptools python-wheel))
|
||||
(native-inputs (list python-setuptools))
|
||||
(home-page "https://example.com")
|
||||
(synopsis "summary")
|
||||
(description "summary.")
|
||||
|
|
@ -509,8 +512,7 @@ files specified by SPECS. Return its file name."
|
|||
(build-system pyproject-build-system)
|
||||
(propagated-inputs (list python-bar python-foo))
|
||||
(native-inputs (list python-pytest
|
||||
python-setuptools
|
||||
python-wheel))
|
||||
python-setuptools))
|
||||
(home-page "https://example.com")
|
||||
(synopsis "summary")
|
||||
(description "summary.")
|
||||
|
|
@ -537,10 +539,6 @@ files specified by SPECS. Return its file name."
|
|||
(upstream-input
|
||||
(name "setuptools")
|
||||
(downstream-name "python-setuptools")
|
||||
(type 'native))
|
||||
(upstream-input
|
||||
(name "wheel")
|
||||
(downstream-name "python-wheel")
|
||||
(type 'native))))
|
||||
(let ((tarball (pypi-tarball
|
||||
"foo-1.0.0"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue