diff mbox series

[RFC,v2,2/7] tests: fetch: add test cases for expanded_urldata

Message ID 20250905064419.2589111-3-stefan.herbrechtsmeier-oss@weidmueller.com
State New
Headers show
Series fetch2: add support for implicit urls | expand

Commit Message

Stefan Herbrechtsmeier Sept. 5, 2025, 6:44 a.m. UTC
From: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>

Add test cases for the expanded_urldata function. The test cases
contains plain tests for local, wget and git fetcher and an extended
test for the gitsm fetcher.

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>

---

Changes in v2:
- Add commit to test the expanded_urldata function

 lib/bb/tests/fetch.py | 44 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
diff mbox series

Patch

diff --git a/lib/bb/tests/fetch.py b/lib/bb/tests/fetch.py
index feaba235b..806870198 100644
--- a/lib/bb/tests/fetch.py
+++ b/lib/bb/tests/fetch.py
@@ -915,6 +915,20 @@  class FetcherLocalTest(FetcherTest):
             l = os.path.join(self.dldir, "git2", filename)
             self.assertEqual(localpath, l)
 
+    def test_expanded_urldata(self):
+        urls = [
+            "file://archive.tar.gz",
+            "https://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz",
+            "git://git.openembedded.org/bitbake;branch=master;protocol=https"
+                ";rev=270a05b0b4ba0959fe0624d2a4885d7b70426da5"
+        ]
+        fetcher = bb.fetch.Fetch(urls, self.d)
+        urldata = fetcher.expanded_urldata()
+
+        self.assertEqual(len(urldata), len(urls))
+        for ud, url in zip(urldata, urls):
+            self.assertEqual(ud.url, url)
+
 class FetcherNoNetworkTest(FetcherTest):
     def setUp(self):
         super().setUp()
@@ -1316,6 +1330,36 @@  class FetcherNetworkTest(FetcherTest):
             with self.assertRaises(bb.fetch2.FetchError):
                 fetcher.download()
 
+    @skipIfNoNetwork()
+    def test_git_submodule_expanded_urldata(self):
+        expected_urldata = [
+            (
+                "gitsm://git.yoctoproject.org/git-submodule-test;protocol=https"
+                    ";branch=master;rev=a2885dd7d25380d23627e7544b7bbb55014b16ee",
+                "a2885dd7d25380d23627e7544b7bbb55014b16ee"
+            ), (
+                "gitsm://git.openembedded.org/bitbake;protocol=git",
+                "c39b99792547b642570ea5152070e7396e812390"
+            ), (
+                "gitsm://git.yoctoproject.org/bitbake-gitsm-test1;protocol=git",
+                "120f4c731cdc4a24cd29e44c4c02c4c658d8bc0e"
+            ), (
+                "gitsm://git.openembedded.org/bitbake;protocol=git",
+                "52a144a7daa94b2bd239d582cb71d1f03119918f"
+            ), (
+                "gitsm://git.yoctoproject.org/bitbake-gitsm-test2;protocol=git",
+                "f66699ed76c2b21ebe2a94ee23450415d2c7dee4"
+            )
+        ]
+        fetcher = bb.fetch.Fetch([expected_urldata[0][0]], self.d)
+        fetcher.download()
+        urldata = fetcher.expanded_urldata()
+
+        self.assertEqual(len(urldata), len(expected_urldata))
+        for ud, (url, rev) in zip(urldata, expected_urldata):
+            self.assertEqual(ud.url[:len(url)], url)
+            self.assertEqual(ud.revision, rev)
+
 class SVNTest(FetcherTest):
     def skipIfNoSvn():
         if not shutil.which("svn"):