From d56e2eb4216827284220fcc35af42e60b4faaea6 Mon Sep 17 00:00:00 2001 From: LaMont Jones Date: Thu, 7 Apr 2022 18:14:46 +0000 Subject: manifest_xml: use Superproject to hold XML content Always create Superproject when there is a tag, and have it hold the XML content, similar to how other manifest elements are handled. This also adds SetQuiet and SetPrintMessages to Superproject consistent with manifest.SetUseLocalManifests. Change-Id: I522bf3da542006575799f0640c67f7052704f266 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/334641 Reviewed-by: Mike Frysinger Reviewed-by: Raman Tenneti Tested-by: LaMont Jones --- tests/test_git_superproject.py | 63 ++++++++++++++++++++---------------------- tests/test_manifest_xml.py | 50 ++++++++++++++++----------------- 2 files changed, 55 insertions(+), 58 deletions(-) (limited to 'tests') diff --git a/tests/test_git_superproject.py b/tests/test_git_superproject.py index a24fc7f0..1e7b1201 100644 --- a/tests/test_git_superproject.py +++ b/tests/test_git_superproject.py @@ -68,8 +68,10 @@ class SuperprojectTestCase(unittest.TestCase): """) - self._superproject = git_superproject.Superproject(manifest, self.repodir, - self.git_event_log) + self._superproject = git_superproject.Superproject( + manifest, name='superproject', + remote=manifest.remotes.get('default-remote').ToRemoteSpec('superproject'), + revision='refs/heads/main') def tearDown(self): """Tear down superproject every time.""" @@ -125,12 +127,7 @@ class SuperprojectTestCase(unittest.TestCase): """) - superproject = git_superproject.Superproject(manifest, self.repodir, self.git_event_log) - # Test that exit condition is false when there is no superproject tag. - sync_result = superproject.Sync() - self.assertFalse(sync_result.success) - self.assertFalse(sync_result.fatal) - self.verifyErrorEvent() + self.assertIsNone(manifest.superproject) def test_superproject_get_superproject_invalid_url(self): """Test with an invalid url.""" @@ -141,8 +138,11 @@ class SuperprojectTestCase(unittest.TestCase): """) - superproject = git_superproject.Superproject(manifest, self.repodir, self.git_event_log) - sync_result = superproject.Sync() + superproject = git_superproject.Superproject( + manifest, name='superproject', + remote=manifest.remotes.get('test-remote').ToRemoteSpec('superproject'), + revision='refs/heads/main') + sync_result = superproject.Sync(self.git_event_log) self.assertFalse(sync_result.success) self.assertTrue(sync_result.fatal) @@ -155,17 +155,19 @@ class SuperprojectTestCase(unittest.TestCase): """) - self._superproject = git_superproject.Superproject(manifest, self.repodir, - self.git_event_log) + self._superproject = git_superproject.Superproject( + manifest, name='superproject', + remote=manifest.remotes.get('test-remote').ToRemoteSpec('superproject'), + revision='refs/heads/main') with mock.patch.object(self._superproject, '_branch', 'junk'): - sync_result = self._superproject.Sync() + sync_result = self._superproject.Sync(self.git_event_log) self.assertFalse(sync_result.success) self.assertTrue(sync_result.fatal) def test_superproject_get_superproject_mock_init(self): """Test with _Init failing.""" with mock.patch.object(self._superproject, '_Init', return_value=False): - sync_result = self._superproject.Sync() + sync_result = self._superproject.Sync(self.git_event_log) self.assertFalse(sync_result.success) self.assertTrue(sync_result.fatal) @@ -174,7 +176,7 @@ class SuperprojectTestCase(unittest.TestCase): with mock.patch.object(self._superproject, '_Init', return_value=True): os.mkdir(self._superproject._superproject_path) with mock.patch.object(self._superproject, '_Fetch', return_value=False): - sync_result = self._superproject.Sync() + sync_result = self._superproject.Sync(self.git_event_log) self.assertFalse(sync_result.success) self.assertTrue(sync_result.fatal) @@ -230,7 +232,7 @@ class SuperprojectTestCase(unittest.TestCase): return_value=data): # Create temporary directory so that it can write the file. os.mkdir(self._superproject._superproject_path) - update_result = self._superproject.UpdateProjectsRevisionId(projects) + update_result = self._superproject.UpdateProjectsRevisionId(projects, self.git_event_log) self.assertIsNotNone(update_result.manifest_path) self.assertFalse(update_result.fatal) with open(update_result.manifest_path, 'r') as fp: @@ -256,22 +258,13 @@ class SuperprojectTestCase(unittest.TestCase): """) self.maxDiff = None - self._superproject = git_superproject.Superproject(manifest, self.repodir, - self.git_event_log) - self.assertEqual(len(self._superproject._manifest.projects), 1) - projects = self._superproject._manifest.projects - project = projects[0] - project.SetRevisionId('ABCDEF') - update_result = self._superproject.UpdateProjectsRevisionId(projects) - self.assertIsNone(update_result.manifest_path) - self.assertFalse(update_result.fatal) - self.verifyErrorEvent() + self.assertIsNone(manifest.superproject) self.assertEqual( sort_attributes(manifest.ToXml().toxml()), '' '' '' - '' + '' '') def test_superproject_update_project_revision_id_from_local_manifest_group(self): @@ -290,8 +283,10 @@ class SuperprojectTestCase(unittest.TestCase): " /> """) self.maxDiff = None - self._superproject = git_superproject.Superproject(manifest, self.repodir, - self.git_event_log) + self._superproject = git_superproject.Superproject( + manifest, name='superproject', + remote=manifest.remotes.get('default-remote').ToRemoteSpec('superproject'), + revision='refs/heads/main') self.assertEqual(len(self._superproject._manifest.projects), 2) projects = self._superproject._manifest.projects data = ('160000 commit 2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea\tart\x00') @@ -302,7 +297,7 @@ class SuperprojectTestCase(unittest.TestCase): return_value=data): # Create temporary directory so that it can write the file. os.mkdir(self._superproject._superproject_path) - update_result = self._superproject.UpdateProjectsRevisionId(projects) + update_result = self._superproject.UpdateProjectsRevisionId(projects, self.git_event_log) self.assertIsNotNone(update_result.manifest_path) self.assertFalse(update_result.fatal) with open(update_result.manifest_path, 'r') as fp: @@ -337,8 +332,10 @@ class SuperprojectTestCase(unittest.TestCase): " /> """) self.maxDiff = None - self._superproject = git_superproject.Superproject(manifest, self.repodir, - self.git_event_log) + self._superproject = git_superproject.Superproject( + manifest, name='superproject', + remote=manifest.remotes.get('default-remote').ToRemoteSpec('superproject'), + revision='refs/heads/main') self.assertEqual(len(self._superproject._manifest.projects), 3) projects = self._superproject._manifest.projects data = ('160000 commit 2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea\tart\x00' @@ -350,7 +347,7 @@ class SuperprojectTestCase(unittest.TestCase): return_value=data): # Create temporary directory so that it can write the file. os.mkdir(self._superproject._superproject_path) - update_result = self._superproject.UpdateProjectsRevisionId(projects) + update_result = self._superproject.UpdateProjectsRevisionId(projects, self.git_event_log) self.assertIsNotNone(update_result.manifest_path) self.assertFalse(update_result.fatal) with open(update_result.manifest_path, 'r') as fp: diff --git a/tests/test_manifest_xml.py b/tests/test_manifest_xml.py index cb3eb855..ede41547 100644 --- a/tests/test_manifest_xml.py +++ b/tests/test_manifest_xml.py @@ -289,8 +289,8 @@ class XmlManifestTests(ManifestParseTestCase): X tags are always ignored """) - self.assertEqual(manifest.superproject['name'], 'superproject') - self.assertEqual(manifest.superproject['remote'].name, 'test-remote') + self.assertEqual(manifest.superproject.name, 'superproject') + self.assertEqual(manifest.superproject.remote.name, 'test-remote') self.assertEqual( sort_attributes(manifest.ToXml().toxml()), '' @@ -569,10 +569,10 @@ class SuperProjectElementTests(ManifestParseTestCase): """) - self.assertEqual(manifest.superproject['name'], 'superproject') - self.assertEqual(manifest.superproject['remote'].name, 'test-remote') - self.assertEqual(manifest.superproject['remote'].url, 'http://localhost/superproject') - self.assertEqual(manifest.superproject['revision'], 'refs/heads/main') + self.assertEqual(manifest.superproject.name, 'superproject') + self.assertEqual(manifest.superproject.remote.name, 'test-remote') + self.assertEqual(manifest.superproject.remote.url, 'http://localhost/superproject') + self.assertEqual(manifest.superproject.revision, 'refs/heads/main') self.assertEqual( sort_attributes(manifest.ToXml().toxml()), '' @@ -591,10 +591,10 @@ class SuperProjectElementTests(ManifestParseTestCase): """) - self.assertEqual(manifest.superproject['name'], 'superproject') - self.assertEqual(manifest.superproject['remote'].name, 'test-remote') - self.assertEqual(manifest.superproject['remote'].url, 'http://localhost/superproject') - self.assertEqual(manifest.superproject['revision'], 'refs/heads/stable') + self.assertEqual(manifest.superproject.name, 'superproject') + self.assertEqual(manifest.superproject.remote.name, 'test-remote') + self.assertEqual(manifest.superproject.remote.url, 'http://localhost/superproject') + self.assertEqual(manifest.superproject.revision, 'refs/heads/stable') self.assertEqual( sort_attributes(manifest.ToXml().toxml()), '' @@ -613,10 +613,10 @@ class SuperProjectElementTests(ManifestParseTestCase): """) - self.assertEqual(manifest.superproject['name'], 'superproject') - self.assertEqual(manifest.superproject['remote'].name, 'test-remote') - self.assertEqual(manifest.superproject['remote'].url, 'http://localhost/superproject') - self.assertEqual(manifest.superproject['revision'], 'refs/heads/stable') + self.assertEqual(manifest.superproject.name, 'superproject') + self.assertEqual(manifest.superproject.remote.name, 'test-remote') + self.assertEqual(manifest.superproject.remote.url, 'http://localhost/superproject') + self.assertEqual(manifest.superproject.revision, 'refs/heads/stable') self.assertEqual( sort_attributes(manifest.ToXml().toxml()), '' @@ -635,10 +635,10 @@ class SuperProjectElementTests(ManifestParseTestCase): """) - self.assertEqual(manifest.superproject['name'], 'superproject') - self.assertEqual(manifest.superproject['remote'].name, 'test-remote') - self.assertEqual(manifest.superproject['remote'].url, 'http://localhost/superproject') - self.assertEqual(manifest.superproject['revision'], 'refs/heads/stable') + self.assertEqual(manifest.superproject.name, 'superproject') + self.assertEqual(manifest.superproject.remote.name, 'test-remote') + self.assertEqual(manifest.superproject.remote.url, 'http://localhost/superproject') + self.assertEqual(manifest.superproject.revision, 'refs/heads/stable') self.assertEqual( sort_attributes(manifest.ToXml().toxml()), '' @@ -657,10 +657,10 @@ class SuperProjectElementTests(ManifestParseTestCase): """) - self.assertEqual(manifest.superproject['name'], 'platform/superproject') - self.assertEqual(manifest.superproject['remote'].name, 'superproject-remote') - self.assertEqual(manifest.superproject['remote'].url, 'http://localhost/platform/superproject') - self.assertEqual(manifest.superproject['revision'], 'refs/heads/main') + self.assertEqual(manifest.superproject.name, 'platform/superproject') + self.assertEqual(manifest.superproject.remote.name, 'superproject-remote') + self.assertEqual(manifest.superproject.remote.url, 'http://localhost/platform/superproject') + self.assertEqual(manifest.superproject.revision, 'refs/heads/main') self.assertEqual( sort_attributes(manifest.ToXml().toxml()), '' @@ -679,9 +679,9 @@ class SuperProjectElementTests(ManifestParseTestCase): """) - self.assertEqual(manifest.superproject['name'], 'superproject') - self.assertEqual(manifest.superproject['remote'].name, 'default-remote') - self.assertEqual(manifest.superproject['revision'], 'refs/heads/main') + self.assertEqual(manifest.superproject.name, 'superproject') + self.assertEqual(manifest.superproject.remote.name, 'default-remote') + self.assertEqual(manifest.superproject.revision, 'refs/heads/main') self.assertEqual( sort_attributes(manifest.ToXml().toxml()), '' -- cgit v1.2.3-54-g00ecf