From 6eb0e18f209a9052931deec3a9d2c7141d70576f Mon Sep 17 00:00:00 2001 From: Antoine Lambert <anlambert@softwareheritage.org> Date: Thu, 2 Mar 2023 11:09:10 +0100 Subject: [PATCH] loader: Fix subversion sub-project dump URL Previously SvnLoaderFromRemoteDump class was using the repository root URL to dump a sub-project. --- swh/loader/svn/loader.py | 1 + swh/loader/svn/tests/test_loader.py | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/swh/loader/svn/loader.py b/swh/loader/svn/loader.py index 48fd052..721f533 100644 --- a/swh/loader/svn/loader.py +++ b/swh/loader/svn/loader.py @@ -856,6 +856,7 @@ class SvnLoaderFromRemoteDump(SvnLoader): self.temp_dir, self.max_content_size, debug=self.debug, + from_dump=True, ) # Ensure to use remote URL retrieved by SvnRepo as origin URL might redirect diff --git a/swh/loader/svn/tests/test_loader.py b/swh/loader/svn/tests/test_loader.py index ac22b2c..b7049b0 100644 --- a/swh/loader/svn/tests/test_loader.py +++ b/swh/loader/svn/tests/test_loader.py @@ -1931,7 +1931,9 @@ def test_loader_svn_add_property_on_directory_link( @pytest.mark.parametrize( "svn_loader_cls", [SvnLoader, SvnLoaderFromDumpArchive, SvnLoaderFromRemoteDump] ) -def test_loader_with_subprojects(swh_storage, repo_url, tmp_path, svn_loader_cls): +def test_loader_with_subprojects( + swh_storage, repo_url, tmp_path, svn_loader_cls, mocker +): # first commit add_commit( @@ -1991,6 +1993,9 @@ def test_loader_with_subprojects(swh_storage, repo_url, tmp_path, svn_loader_cls loader = svn_loader_cls(**loader_params) + if svn_loader_cls == SvnLoaderFromRemoteDump: + dump_revisions = mocker.spy(loader, "dump_svn_revisions") + assert loader.load() == {"status": "eventful"} assert_last_visit_matches( loader.storage, @@ -2000,6 +2005,9 @@ def test_loader_with_subprojects(swh_storage, repo_url, tmp_path, svn_loader_cls ) check_snapshot(loader.snapshot, loader.storage) + if svn_loader_cls == SvnLoaderFromRemoteDump: + dump_revisions.assert_called_once_with(origin_url.rstrip("/"), -1) + if svn_loader_cls == SvnLoaderFromDumpArchive: loader_params["archive_path"] = _dump_project(tmp_path, origin_url) -- GitLab