diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2025-11-04 14:22:08 +0100 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2025-11-18 13:05:49 +0100 |
| commit | 1ce270fb85be517c32c0369df6293ca73b26ebac (patch) | |
| tree | 82be943bc300834618df458519d7e114c75335c9 /tests | |
| parent | 830562e5cdb6c244f39c3168b4649c1144099450 (diff) | |
gnu-maintenance: ‘generic-html’ recognizes ‘release-file-regexp’ property.
* guix/gnu-maintenance.scm (package-release-file?): New procedure.
(tarball->version): Add optional parameter and honor it.
(import-html-release): Use ‘package-release-file?’ and pass second argument to
‘tarball->version’.
* tests/gnu-maintenance.scm ("latest-html-release, 'release-file-regexp' property")
("latest-html-release, invalid 'release-file-regexp' property"): New tests.
* doc/guix.texi (Invoking guix refresh): Document it.
Change-Id: Ia9328418fdd2faf118e4ec9d5fbde4a279e100ed
Reviewed-by: Maxim Cournoyer <maxim@guixotic.coop>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/gnu-maintenance.scm | 58 |
1 files changed, 56 insertions, 2 deletions
diff --git a/tests/gnu-maintenance.scm b/tests/gnu-maintenance.scm index 644cd1f2a90..01bcea04aab 100644 --- a/tests/gnu-maintenance.scm +++ b/tests/gnu-maintenance.scm | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2015, 2021 Ludovic Courtès <ludo@gnu.org> | 2 | ;;; Copyright © 2015, 2021, 2025 Ludovic Courtès <ludo@gnu.org> |
| 3 | ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> | 3 | ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> |
| 4 | ;;; Copyright © 2023-2024 Maxim Cournoyer <maxim@guixotic.coop> | 4 | ;;; Copyright © 2023-2024 Maxim Cournoyer <maxim@guixotic.coop> |
| 5 | ;;; | 5 | ;;; |
| @@ -27,7 +27,7 @@ | |||
| 27 | #:use-module (srfi srfi-1) | 27 | #:use-module (srfi srfi-1) |
| 28 | #:use-module (srfi srfi-64) | 28 | #:use-module (srfi srfi-64) |
| 29 | #:use-module ((web client) #:select (current-http-proxy)) | 29 | #:use-module ((web client) #:select (current-http-proxy)) |
| 30 | #:use-module ((web uri) #:select (uri? uri->string)) | 30 | #:use-module ((web uri) #:select (uri? uri->string string->uri uri-path)) |
| 31 | #:use-module (ice-9 match)) | 31 | #:use-module (ice-9 match)) |
| 32 | 32 | ||
| 33 | (test-begin "gnu-maintenance") | 33 | (test-begin "gnu-maintenance") |
| @@ -91,6 +91,60 @@ | |||
| 91 | (equal? (upstream-source-version update) "2") | 91 | (equal? (upstream-source-version update) "2") |
| 92 | (equal? (list expected-new-url) (upstream-source-urls update)))))) | 92 | (equal? (list expected-new-url) (upstream-source-urls update)))))) |
| 93 | 93 | ||
| 94 | (test-equal "latest-html-release, 'release-file-regexp' property" | ||
| 95 | '("foo" | ||
| 96 | "1.2.3" | ||
| 97 | ("/dl/FOO1.2.3.tgz")) | ||
| 98 | (with-http-server | ||
| 99 | `((200 "<html xmlns=\"http://www.w3.org/1999/xhtml\"> | ||
| 100 | <head> | ||
| 101 | <title>Releases with unusual file names</title> | ||
| 102 | </head> | ||
| 103 | <body | ||
| 104 | <a href=\"FOO1.2.3.tgz\">version 1.2</a> | ||
| 105 | </body> | ||
| 106 | </html>")) | ||
| 107 | (let () | ||
| 108 | (define package | ||
| 109 | (dummy-package "foo" | ||
| 110 | (source | ||
| 111 | (dummy-origin | ||
| 112 | (uri (string-append (%local-url #:path "/dl") | ||
| 113 | "/FOO1.0.0.tar.gz")))) | ||
| 114 | (properties | ||
| 115 | `((release-monitoring-url . ,(%local-url #:path "/dl/")) | ||
| 116 | (release-file-regexp . "FOO([0-9\\.]+)\\.tgz"))))) | ||
| 117 | (define update | ||
| 118 | ((upstream-updater-import %generic-html-updater) package)) | ||
| 119 | |||
| 120 | (list (upstream-source-package update) | ||
| 121 | (upstream-source-version update) | ||
| 122 | (map (compose uri-path string->uri) | ||
| 123 | (upstream-source-urls update)))))) | ||
| 124 | |||
| 125 | (test-assert "latest-html-release, invalid 'release-file-regexp' property" | ||
| 126 | (with-http-server | ||
| 127 | `((200 "<html xmlns=\"http://www.w3.org/1999/xhtml\"> | ||
| 128 | <head> | ||
| 129 | <title>Releases with unusual file names</title> | ||
| 130 | </head> | ||
| 131 | <body | ||
| 132 | <a href=\"FOO1.2.3.tgz\">version 1.2</a> | ||
| 133 | </body> | ||
| 134 | </html>")) | ||
| 135 | (let () | ||
| 136 | (define package | ||
| 137 | (dummy-package "foo" | ||
| 138 | (source | ||
| 139 | (dummy-origin | ||
| 140 | (uri (string-append (%local-url #:path "/dl") | ||
| 141 | "/FOO1.0.0.tar.gz")))) | ||
| 142 | (properties | ||
| 143 | `((release-monitoring-url . ,(%local-url #:path "/dl/")) | ||
| 144 | (release-file-regexp . "FOO[0-9\\.]+\\.tgz"))))) | ||
| 145 | (not ((upstream-updater-import %generic-html-updater) package))))) | ||
| 146 | |||
| 147 | |||
| 94 | (test-assert "latest-html-release, no signature" | 148 | (test-assert "latest-html-release, no signature" |
| 95 | (with-http-server | 149 | (with-http-server |
| 96 | `((200 "<html xmlns=\"http://www.w3.org/1999/xhtml\"> | 150 | `((200 "<html xmlns=\"http://www.w3.org/1999/xhtml\"> |
