summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2025-11-04 14:22:08 +0100
committerLudovic Courtès <ludo@gnu.org>2025-11-18 13:05:49 +0100
commit1ce270fb85be517c32c0369df6293ca73b26ebac (patch)
tree82be943bc300834618df458519d7e114c75335c9 /tests
parent830562e5cdb6c244f39c3168b4649c1144099450 (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.scm58
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\">