import: pypi: Correctly handle new-style URLs.
Fixes <http://bugs.gnu.org/23997>. * guix/import/pypi.scm (guix-package->pypi-name): Rewrite using 'basename' and 'hyphen-package-name->name+version'. * tests/pypi.scm ("guix-package->pypi-name, old URL style") ("guix-package->pypi-name, new URL style"): New tests.
This commit is contained in:
parent
debc6360e1
commit
8173ceee1f
|
@ -33,6 +33,9 @@
|
|||
#:use-module (web uri)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((guix build utils)
|
||||
#:select ((package-name->name+version
|
||||
. hyphen-package-name->name+version)))
|
||||
#:use-module (guix import utils)
|
||||
#:use-module ((guix download) #:prefix download:)
|
||||
#:use-module (guix import json)
|
||||
|
@ -41,7 +44,8 @@
|
|||
#:use-module (guix licenses)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages python)
|
||||
#:export (pypi->guix-package
|
||||
#:export (guix-package->pypi-name
|
||||
pypi->guix-package
|
||||
%pypi-updater))
|
||||
|
||||
(define (pypi-fetch name)
|
||||
|
@ -92,11 +96,8 @@ package."
|
|||
"Given a Python PACKAGE built from pypi.python.org, return the name of the
|
||||
package on PyPI."
|
||||
(let ((source-url (and=> (package-source package) origin-uri)))
|
||||
;; The URL has the form:
|
||||
;; 'https://pypi.python.org/packages/source/' +
|
||||
;; first letter of the package name +
|
||||
;; '/' + package name + '/' + ...
|
||||
(substring source-url 42 (string-rindex source-url #\/))))
|
||||
(hyphen-package-name->name+version
|
||||
(basename (file-sans-extension source-url)))))
|
||||
|
||||
(define (wheel-url->extracted-directory wheel-url)
|
||||
(match (string-split (basename wheel-url) #\-)
|
||||
|
|
|
@ -73,6 +73,22 @@ baz > 13.37")
|
|||
|
||||
(test-begin "pypi")
|
||||
|
||||
(test-equal "guix-package->pypi-name, old URL style"
|
||||
"psutil"
|
||||
(guix-package->pypi-name
|
||||
(dummy-package "foo"
|
||||
(source (dummy-origin
|
||||
(uri
|
||||
"https://pypi.io/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
|
||||
|
||||
(test-equal "guix-package->pypi-name, new URL style"
|
||||
"certbot"
|
||||
(guix-package->pypi-name
|
||||
(dummy-package "foo"
|
||||
(source (dummy-origin
|
||||
(uri
|
||||
"https://pypi.python.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
|
||||
|
||||
(test-assert "pypi->guix-package"
|
||||
;; Replace network resources with sample data.
|
||||
(mock ((guix import utils) url-fetch
|
||||
|
|
Loading…
Reference in New Issue