Subject: Failing tests (tests/swh.scm tests/pypi.scm tests/gem.scm tests/crate.scm tests/cpan.scm)

From: P <[email-masked]>
Date: Mon, 29 Jul 2019 16:15:59 +0000

commit: 767a0a18d88479c713f1b9b034bd06eedfe71a80 (or rather the previous commit, there are some small unrelated changes in gnu/packages/idris.scm)

make check TESTS="tests/swh.scm tests/pypi.scm tests/gem.scm tests/crate.scm tests/cpan.scm" SCM_LOG_DRIVER_FLAGS="--brief=no"

=================================================
   GNU Guix 1.0.1.1832-23243: ./test-suite.log
=================================================

# TOTAL: 21
# PASS:  12
# SKIP:  1
# XFAIL: 0
# FAIL:  8
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: tests/swh
===============

test-name: lookup-origin
location: /home/raingloom/Projects/Guix/guix-source/tests/swh.scm:49
source:
+ (test-equal
+   "lookup-origin"
+   (list 42 "git" "http://example.org/guix.git")
+   (with-json-result
+     %origin
+     (let ((origin
+             (lookup-origin "http://example.org/guix.git")))
+       (list (origin-id origin)
+             (origin-type origin)
+             (origin-url origin)))))
expected-value: (42 "git" "http://example.org/guix.git")
actual-value: (#f #f #f)
result: FAIL

test-name: lookup-origin, not found
location: /home/raingloom/Projects/Guix/guix-source/tests/swh.scm:57
source:
+ (test-equal
+   "lookup-origin, not found"
+   #f
+   (with-http-server
+     404
+     "Nope."
+     (parameterize
+       ((%swh-base-url (%local-url)))
+       (lookup-origin "http://example.org/whatever"))))
expected-value: #f
actual-value: #f
result: PASS

test-name: lookup-directory
location: /home/raingloom/Projects/Guix/guix-source/tests/swh.scm:63
source:
+ (test-equal
+   "lookup-directory"
+   '(("one" 123) ("two" 456))
+   (with-json-result
+     %directory-entries
+     (map (lambda (entry)
+            (list (directory-entry-name entry)
+                  (directory-entry-length entry)))
+          (lookup-directory "123"))))
expected-value: (("one" 123) ("two" 456))
actual-value: #f
actual-error:
+ (wrong-type-arg
+   #f
+   "Wrong type (expecting ~A): ~S"
+   ("array"
+    (#<hash-table f97f40 4/31>
+     #<hash-table f97b00 4/31>))
+   ((#<hash-table f97f40 4/31>
+     #<hash-table f97b00 4/31>)))
result: FAIL

FAIL: tests/pypi
================

test-name: guix-package->pypi-name, old URL style
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:122
source:
+ (test-equal
+   "guix-package->pypi-name, old URL style"
+   "psutil"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri "https://pypi.org/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
expected-value: "psutil"
actual-value: "psutil"
result: PASS

test-name: guix-package->pypi-name, new URL style
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:130
source:
+ (test-equal
+   "guix-package->pypi-name, new URL style"
+   "certbot"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri "https://pypi.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
expected-value: "certbot"
actual-value: "certbot"
result: PASS

test-name: guix-package->pypi-name, several URLs
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:138
source:
+ (test-equal
+   "guix-package->pypi-name, several URLs"
+   "cram"
+   (guix-package->pypi-name
+     (dummy-package
+       "foo"
+       (source
+         (dummy-origin
+           (uri (list "https://bitheap.org/cram/cram-0.7.tar.gz"
+                      (pypi-uri "cram" "0.7"))))))))
expected-value: "cram"
actual-value: "cram"
result: PASS

test-name: specification->requirement-name
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:147
source:
+ (test-equal
+   "specification->requirement-name"
+   '("Fizzy"
+     "PickyThing"
+     "SomethingWithMarker"
+     "requests"
+     "pip")
+   (map specification->requirement-name
+        test-specifications))
expected-value: ("Fizzy" "PickyThing" "SomethingWithMarker" "requests" "pip")
actual-value: ("Fizzy" "PickyThing" "SomethingWithMarker" "requests" "pip")
result: PASS

test-name: parse-requires.txt
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:151
source:
+ (test-equal
+   "parse-requires.txt"
+   (list '("foo" "bar") '("pytest"))
+   (mock ((ice-9 ports)
+          call-with-input-file
+          call-with-input-string)
+         (parse-requires.txt test-requires.txt)))
expected-value: (("foo" "bar") ("pytest"))
actual-value: (("foo" "bar") ("pytest"))
result: PASS

test-name: parse-requires.txt - Beaker
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:157
source:
+ (test-equal
+   "parse-requires.txt - Beaker"
+   (list '() '("Mock" "coverage"))
+   (mock ((ice-9 ports)
+          call-with-input-file
+          call-with-input-string)
+         (parse-requires.txt test-requires.txt-beaker)))
expected-value: (() ("Mock" "coverage"))
actual-value: (() ("Mock" "coverage"))
result: PASS

test-name: parse-wheel-metadata, with extras
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:163
source:
+ (test-equal
+   "parse-wheel-metadata, with extras"
+   (list '("wrapt" "bar") '("tox" "bumpversion"))
+   (mock ((ice-9 ports)
+          call-with-input-file
+          call-with-input-string)
+         (parse-wheel-metadata test-metadata-with-extras)))
expected-value: (("wrapt" "bar") ("tox" "bumpversion"))
actual-value: (("wrapt" "bar") ("tox" "bumpversion"))
result: PASS

test-name: parse-wheel-metadata, with extras - Jedi
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:169
source:
+ (test-equal
+   "parse-wheel-metadata, with extras - Jedi"
+   (list '("parso") '("pytest"))
+   (mock ((ice-9 ports)
+          call-with-input-file
+          call-with-input-string)
+         (parse-wheel-metadata
+           test-metadata-with-extras-jedi)))
expected-value: (("parso") ("pytest"))
actual-value: (("parso") ("pytest"))
result: PASS

test-name: pypi->guix-package, no wheel
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:175
source:
+ (test-assert
+   "pypi->guix-package, no wheel"
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (begin
+                      (mkdir-p "foo-1.0.0/src/bizarre.egg-info")
+                      (with-output-to-file
+                        "foo-1.0.0/src/bizarre.egg-info/requires.txt"
+                        (lambda () (display test-requires.txt)))
+                      (parameterize
+                        ((current-output-port (%make-void-port "rw+")))
+                        (system* "tar" "czvf" file-name "foo-1.0.0/"))
+                      (delete-file-recursively "foo-1.0.0")
+                      (set! test-source-hash
+                        (call-with-input-file file-name port-sha256))))
+                   ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    #f)
+                   (_ (error "Unexpected URL: " url)))))
+         (mock ((guix http-client)
+                http-fetch
+                (lambda (url . rest)
+                  (match url
+                         ("https://pypi.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 ('pypi-uri "foo" 'version))
+                          ('sha256 ('base32 (? string? hash)))))
+                        ('build-system 'python-build-system)
+                        ('propagated-inputs
+                         ('quasiquote
+                          (("python-bar" ('unquote 'python-bar))
+                           ("python-foo" ('unquote 'python-foo)))))
+                        ('native-inputs
+                         ('quasiquote
+                          (("python-pytest" ('unquote 'python-pytest)))))
+                        ('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))))))
actual-value: #f
actual-error:
+ (wrong-type-arg
+   #f
+   "Wrong type (expecting ~A): ~S"
+   ("array" #f)
+   (#f))
result: FAIL

test-name: pypi->guix-package, wheels
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:231
source:
+ (test-assert
+   "pypi->guix-package, wheels"
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (begin
+                      (mkdir-p "foo-1.0.0/foo.egg-info/")
+                      (with-output-to-file
+                        "foo-1.0.0/foo.egg-info/requires.txt"
+                        (lambda ()
+                          (display
+                            "wrong data to make sure we're testing wheels ")))
+                      (parameterize
+                        ((current-output-port (%make-void-port "rw+")))
+                        (system* "tar" "czvf" file-name "foo-1.0.0/"))
+                      (delete-file-recursively "foo-1.0.0")
+                      (set! test-source-hash
+                        (call-with-input-file file-name port-sha256))))
+                   ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    (begin
+                      (mkdir "foo-1.0.0.dist-info")
+                      (with-output-to-file
+                        "foo-1.0.0.dist-info/METADATA"
+                        (lambda () (display test-metadata)))
+                      (let ((zip-file (string-append file-name ".zip")))
+                        (system*
+                          "zip"
+                          "-q"
+                          zip-file
+                          "foo-1.0.0.dist-info/METADATA")
+                        (rename-file zip-file file-name))
+                      (delete-file-recursively "foo-1.0.0.dist-info")))
+                   (_ (error "Unexpected URL: " url)))))
+         (mock ((guix http-client)
+                http-fetch
+                (lambda (url . rest)
+                  (match url
+                         ("https://pypi.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)))))
+               (invalidate-memoization! pypi->guix-package)
+               (match (pypi->guix-package "foo")
+                      (('package
+                        ('name "python-foo")
+                        ('version "1.0.0")
+                        ('source
+                         ('origin
+                          ('method 'url-fetch)
+                          ('uri ('pypi-uri "foo" 'version))
+                          ('sha256 ('base32 (? string? hash)))))
+                        ('build-system 'python-build-system)
+                        ('propagated-inputs
+                         ('quasiquote
+                          (("python-bar" ('unquote 'python-bar))
+                           ("python-baz" ('unquote 'python-baz)))))
+                        ('native-inputs
+                         ('quasiquote
+                          (("python-pytest" ('unquote 'python-pytest)))))
+                        ('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))))))
result: SKIP

test-name: pypi->guix-package, no usable requirement file.
location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:299
source:
+ (test-assert
+   "pypi->guix-package, no usable requirement file."
+   (mock ((guix import utils)
+          url-fetch
+          (lambda (url file-name)
+            (match url
+                   ("https://example.com/foo-1.0.0.tar.gz"
+                    (mkdir-p "foo-1.0.0/foo.egg-info/")
+                    (parameterize
+                      ((current-output-port (%make-void-port "rw+")))
+                      (system* "tar" "czvf" file-name "foo-1.0.0/"))
+                    (delete-file-recursively "foo-1.0.0")
+                    (set! test-source-hash
+                      (call-with-input-file file-name port-sha256)))
+                   ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+                    #f)
+                   (_ (error "Unexpected URL: " url)))))
+         (mock ((guix http-client)
+                http-fetch
+                (lambda (url . rest)
+                  (match url
+                         ("https://pypi.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)))))
+               (invalidate-memoization! pypi->guix-package)
+               (match (pypi->guix-package "foo")
+                      (('package
+                        ('name "python-foo")
+                        ('version "1.0.0")
+                        ('source
+                         ('origin
+                          ('method 'url-fetch)
+                          ('uri ('pypi-uri "foo" 'version))
+                          ('sha256 ('base32 (? string? hash)))))
+                        ('build-system 'python-build-system)
+                        ('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))))))
actual-value: #f
actual-error:
+ (wrong-type-arg
+   #f
+   "Wrong type (expecting ~A): ~S"
+   ("array" #f)
+   (#f))
result: FAIL

random seed for tests: 1564442102

FAIL: tests/gem
===============

test-name: gem->guix-package
location: /home/raingloom/Projects/Guix/guix-source/tests/gem.scm:77
source:
+ (test-assert
+   "gem->guix-package"
+   (mock ((guix http-client)
+          http-fetch
+          (lambda (url . rest)
+            (match url
+                   ("https://rubygems.org/api/v1/gems/foo.json"
+                    (values
+                      (open-input-string test-foo-json)
+                      (string-length test-foo-json)))
+                   (_ (error "Unexpected URL: " url)))))
+         (match (gem->guix-package "foo")
+                (('package
+                  ('name "ruby-foo")
+                  ('version "1.0.0")
+                  ('source
+                   ('origin
+                    ('method 'url-fetch)
+                    ('uri ('rubygems-uri "foo" 'version))
+                    ('sha256
+                     ('base32
+                      "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
+                  ('build-system 'ruby-build-system)
+                  ('propagated-inputs
+                   ('quasiquote
+                    (("bundler" ('unquote 'bundler))
+                     ("ruby-bar" ('unquote 'ruby-bar)))))
+                  ('synopsis "A cool gem")
+                  ('description "This package provides a cool gem")
+                  ('home-page "https://example.com")
+                  ('license ('list 'license:expat 'license:asl2.0)))
+                 #t)
+                (x (pk 'fail x #f)))))
actual-value: #f
actual-error:
+ (wrong-type-arg
+   "string-prefix?"
+   "Wrong type argument in position ~A (expecting ~A): ~S"
+   (2 "string" #f)
+   (#f))
result: FAIL

test-name: gem-recursive-import
location: /home/raingloom/Projects/Guix/guix-source/tests/gem.scm:109
source:
+ (test-assert
+   "gem-recursive-import"
+   (mock ((guix http-client)
+          http-fetch
+          (lambda (url . rest)
+            (match url
+                   ("https://rubygems.org/api/v1/gems/foo.json"
+                    (values
+                      (open-input-string test-foo-json)
+                      (string-length test-foo-json)))
+                   ("https://rubygems.org/api/v1/gems/bar.json"
+                    (values
+                      (open-input-string test-bar-json)
+                      (string-length test-bar-json)))
+                   ("https://rubygems.org/api/v1/gems/bundler.json"
+                    (values
+                      (open-input-string test-bundler-json)
+                      (string-length test-bundler-json)))
+                   (_ (error "Unexpected URL: " url)))))
+         (match (stream->list (gem-recursive-import "foo"))
+                ((('package
+                   ('name "ruby-foo")
+                   ('version "1.0.0")
+                   ('source
+                    ('origin
+                     ('method 'url-fetch)
+                     ('uri ('rubygems-uri "foo" 'version))
+                     ('sha256
+                      ('base32
+                       "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
+                   ('build-system 'ruby-build-system)
+                   ('propagated-inputs
+                    ('quasiquote
+                     (("bundler" ('unquote 'bundler))
+                      ("ruby-bar" ('unquote 'ruby-bar)))))
+                   ('synopsis "A cool gem")
+                   ('description "This package provides a cool gem")
+                   ('home-page "https://example.com")
+                   ('license ('list 'license:expat 'license:asl2.0)))
+                  ('package
+                   ('name "ruby-bundler")
+                   ('version "1.14.2")
+                   ('source
+                    ('origin
+                     ('method 'url-fetch)
+                     ('uri ('rubygems-uri "bundler" 'version))
+                     ('sha256
+                      ('base32
+                       "1446xiz7zg0bz7kgx9jv84y0s4hpsg61dj5l3qb0i00avc1kxd9v"))))
+                   ('build-system 'ruby-build-system)
+                   ('synopsis "Ruby gem bundler")
+                   ('description "Ruby gem bundler")
+                   ('home-page "https://bundler.io/")
+                   ('license 'license:expat))
+                  ('package
+                   ('name "ruby-bar")
+                   ('version "1.0.0")
+                   ('source
+                    ('origin
+                     ('method 'url-fetch)
+                     ('uri ('rubygems-uri "bar" 'version))
+                     ('sha256
+                      ('base32
+                       "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk"))))
+                   ('build-system 'ruby-build-system)
+                   ('propagated-inputs
+                    ('quasiquote (('"bundler" ('unquote 'bundler)))))
+                   ('synopsis "Another cool gem")
+                   ('description "Another cool gem")
+                   ('home-page "https://example.com")
+                   ('license ('list 'license:expat 'license:asl2.0))))
+                 #t)
+                (x (pk 'fail x #f)))))
actual-value: #f
actual-error:
+ (wrong-type-arg
+   "string-prefix?"
+   "Wrong type argument in position ~A (expecting ~A): ~S"
+   (2 "string" #f)
+   (#f))
result: FAIL

random seed for tests: 1564442069

FAIL: tests/crate
=================

test-name: guix-package->crate-name
location: /home/raingloom/Projects/Guix/guix-source/tests/crate.scm:57
source:
+ (test-equal
+   "guix-package->crate-name"
+   "rustc-serialize"
+   (guix-package->crate-name
+     (dummy-package
+       "rust-rustc-serialize"
+       (source
+         (dummy-origin
+           (uri (crate-uri "rustc-serialize" "1.0")))))))
expected-value: "rustc-serialize"
actual-value: "rustc-serialize"
result: PASS

test-name: crate->guix-package
location: /home/raingloom/Projects/Guix/guix-source/tests/crate.scm:65
source:
+ (test-assert
+   "crate->guix-package"
+   (mock ((guix http-client)
+          http-fetch
+          (lambda (url . rest)
+            (match url
+                   ("https://crates.io/api/v1/crates/foo"
+                    (open-input-string test-crate))
+                   ("https://crates.io/api/v1/crates/foo/1.0.0/download"
+                    (set! test-source-hash
+                      (bytevector->nix-base32-string
+                        (sha256
+                          (string->bytevector "empty file\n" "utf-8"))))
+                    (open-input-string "empty file\n"))
+                   ("https://crates.io/api/v1/crates/foo/1.0.0/dependencies"
+                    (open-input-string test-dependencies))
+                   (_ (error "Unexpected URL: " url)))))
+         (match (crate->guix-package "foo")
+                (('package
+                  ('name "rust-foo")
+                  ('version "1.0.0")
+                  ('source
+                   ('origin
+                    ('method 'url-fetch)
+                    ('uri ('crate-uri "foo" 'version))
+                    ('file-name
+                     ('string-append 'name "-" 'version ".tar.gz"))
+                    ('sha256 ('base32 (? string? hash)))))
+                  ('build-system 'cargo-build-system)
+                  ('arguments
+                   ('quasiquote
+                    ('#:cargo-inputs
+                     (("rust-bar" ('unquote rust-bar))))))
+                  ('home-page "http://example.com")
+                  ('synopsis "summary")
+                  ('description "summary")
+                  ('license ('list 'license:expat 'license:asl2.0)))
+                 (string=? test-source-hash hash))
+                (x (pk 'fail x #f)))))

;;; (fail #f #f)
actual-value: #f
result: FAIL

random seed for tests: 1564441648

FAIL: tests/cpan
================

random seed for tests: 1564441618
test-name: cpan->guix-package
location: /home/raingloom/Projects/Guix/guix-source/tests/cpan.scm:61
source:
+ (test-assert
+   "cpan->guix-package"
+   (mock ((guix build download)
+          url-fetch
+          (lambda* (url
+                    file-name
+                    #:key
+                    (mirrors '())
+                    verify-certificate?)
+            (with-output-to-file
+              file-name
+              (lambda ()
+                (display
+                  (match url
+                         ("http://example.com/Foo-Bar-0.1.tar.gz"
+                          test-source)
+                         (_ (error "Unexpected URL: " url))))))))
+         (mock ((guix http-client)
+                http-fetch
+                (lambda (url . rest)
+                  (match url
+                         ("https://fastapi.metacpan.org/v1/release/Foo-Bar"
+                          (values
+                            (open-input-string test-json)
+                            (string-length test-json)))
+                         ("https://fastapi.metacpan.org/v1/module/Test::Script?fields=distribution"
+                          (let ((result
+                                  "{ \"distribution\" : \"Test-Script\" }"))
+                            (values
+                              (open-input-string result)
+                              (string-length result))))
+                         (_ (error "Unexpected URL: " url)))))
+               (match (cpan->guix-package "Foo::Bar")
+                      (('package
+                        ('name "perl-foo-bar")
+                        ('version "0.1")
+                        ('source
+                         ('origin
+                          ('method 'url-fetch)
+                          ('uri
+                           ('string-append
+                            "http://example.com/Foo-Bar-"
+                            'version
+                            ".tar.gz"))
+                          ('sha256 ('base32 (? string? hash)))))
+                        ('build-system 'perl-build-system)
+                        ('propagated-inputs
+                         ('quasiquote
+                          (("perl-test-script"
+                            ('unquote 'perl-test-script)))))
+                        ('home-page
+                         "https://metacpan.org/release/Foo-Bar")
+                        ('synopsis "Fizzle Fuzz")
+                        ('description 'fill-in-yourself!)
+                        ('license 'perl-license))
+                       (string=?
+                         (bytevector->nix-base32-string
+                           (call-with-input-string test-source port-sha256))
+                         hash))
+                      (x (pk 'fail x #f))))))
actual-value: #f
actual-error:
+ (wrong-type-arg
+   "string-prefix?"
+   "Wrong type argument in position ~A (expecting ~A): ~S"
+   (2 "string" #f)
+   (#f))
result: FAIL

test-name: source-url-http
location: /home/raingloom/Projects/Guix/guix-source/tests/cpan.scm:110
source:
+ (test-equal
+   "source-url-http"
+   ((@@ (guix import cpan) cpan-source-url)
+    `(("download_url"
+       .
+       "http://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz")))
+   "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz")
expected-value: "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"
actual-value: "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"
result: PASS

test-name: source-url-https
location: /home/raingloom/Projects/Guix/guix-source/tests/cpan.scm:116
source:
+ (test-equal
+   "source-url-https"
+   ((@@ (guix import cpan) cpan-source-url)
+    `(("download_url"
+       .
+       "https://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz")))
+   "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz")
expected-value: "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"
actual-value: "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"
result: PASS