Subject: [bug#63571] [PATCH v2 14/19] import: cpan: Updater provides input list.

From: Ludovic Courtès <[email-masked]>
Date: Mon, 29 May 2023 16:45:25 +0200

* guix/import/cpan.scm (latest-release): Add 'inputs' field.
* tests/cpan.scm ("package-latest-release"): New test.
---
 guix/import/cpan.scm |  3 ++-
 tests/cpan.scm       | 27 +++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/guix/import/cpan.scm b/guix/import/cpan.scm
index b6587d6821..b87736eef6 100644
--- a/guix/import/cpan.scm
+++ b/guix/import/cpan.scm
@@ -354,7 +354,8 @@ (define* (latest-release package #:key (version #f))
        (upstream-source
         (package (package-name package))
         (version version)
-        (urls (list url)))))))
+        (urls (list url))
+        (inputs (cpan-module-inputs release)))))))
 
 (define %cpan-updater
   (upstream-updater
diff --git a/tests/cpan.scm b/tests/cpan.scm
index c9dd6d36de..5fcce85d8d 100644
--- a/tests/cpan.scm
+++ b/tests/cpan.scm
@@ -21,7 +21,10 @@
 (define-module (test-cpan)
   #:use-module (guix import cpan)
   #:use-module (guix base32)
+  #:use-module (guix upstream)
+  #:use-module ((guix download) #:select (url-fetch))
   #:use-module (gcrypt hash)
+  #:use-module (guix tests)
   #:use-module (guix tests http)
   #:use-module ((guix store) #:select (%graft?))
   #:use-module (srfi srfi-64)
@@ -92,6 +95,30 @@ (define test-source
         (x
          (pk 'fail x #f))))))
 
+(test-equal "package-latest-release"
+  (list '("http://example.com/Foo-Bar-0.1.tar.gz")
+        #f
+        (list (upstream-input
+               (name "Test-Script")
+               (downstream-name "perl-test-script")
+               (type 'propagated))))
+  (with-http-server `((200 ,test-json)
+                      (200 ,test-source)
+                      (200 "{ \"distribution\" : \"Test-Script\" }"))
+    (define source
+      (parameterize ((%metacpan-base-url (%local-url)))
+        (package-latest-release
+         (dummy-package "perl-test-script"
+                        (version "0.0.0")
+                        (source (dummy-origin
+                                 (method url-fetch)
+                                 (uri "mirror://cpan/Foo-Bar-0.0.0.tgz"))))
+         (list %cpan-updater))))
+
+    (list (upstream-source-urls source)
+          (upstream-source-signature-urls source)
+          (upstream-source-inputs source))))
+
 (test-equal "metacpan-url->mirror-url, http"
   "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"
   (metacpan-url->mirror-url
-- 
2.40.1