summaryrefslogtreecommitdiffstats
path: root/tests/test_git_superproject.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_git_superproject.py')
-rw-r--r--tests/test_git_superproject.py51
1 files changed, 49 insertions, 2 deletions
diff --git a/tests/test_git_superproject.py b/tests/test_git_superproject.py
index d612f4e7..c3f88531 100644
--- a/tests/test_git_superproject.py
+++ b/tests/test_git_superproject.py
@@ -294,8 +294,7 @@ class SuperprojectTestCase(unittest.TestCase):
294 self.git_event_log) 294 self.git_event_log)
295 self.assertEqual(len(self._superproject._manifest.projects), 2) 295 self.assertEqual(len(self._superproject._manifest.projects), 2)
296 projects = self._superproject._manifest.projects 296 projects = self._superproject._manifest.projects
297 data = ('160000 commit 2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea\tart\x00' 297 data = ('160000 commit 2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea\tart\x00')
298 '160000 commit e9d25da64d8d365dbba7c8ee00fe8c4473fe9a06\tbootable/recovery\x00')
299 with mock.patch.object(self._superproject, '_Init', return_value=True): 298 with mock.patch.object(self._superproject, '_Init', return_value=True):
300 with mock.patch.object(self._superproject, '_Fetch', return_value=True): 299 with mock.patch.object(self._superproject, '_Fetch', return_value=True):
301 with mock.patch.object(self._superproject, 300 with mock.patch.object(self._superproject,
@@ -324,6 +323,54 @@ class SuperprojectTestCase(unittest.TestCase):
324 '<superproject name="superproject"/>' 323 '<superproject name="superproject"/>'
325 '</manifest>') 324 '</manifest>')
326 325
326 def test_superproject_update_project_revision_id_with_pinned_manifest(self):
327 """Test update of commit ids of a pinned manifest."""
328 manifest = self.getXmlManifest("""
329<manifest>
330 <remote name="default-remote" fetch="http://localhost" />
331 <default remote="default-remote" revision="refs/heads/main" />
332 <superproject name="superproject"/>
333 <project path="vendor/x" name="platform/vendor/x" revision="" />
334 <project path="vendor/y" name="platform/vendor/y"
335 revision="52d3c9f7c107839ece2319d077de0cd922aa9d8f" />
336 <project path="art" name="platform/art" groups="notdefault,platform-""" + self.platform + """
337 " /></manifest>
338""")
339 self.maxDiff = None
340 self._superproject = git_superproject.Superproject(manifest, self.repodir,
341 self.git_event_log)
342 self.assertEqual(len(self._superproject._manifest.projects), 3)
343 projects = self._superproject._manifest.projects
344 data = ('160000 commit 2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea\tart\x00'
345 '160000 commit e9d25da64d8d365dbba7c8ee00fe8c4473fe9a06\tvendor/x\x00')
346 with mock.patch.object(self._superproject, '_Init', return_value=True):
347 with mock.patch.object(self._superproject, '_Fetch', return_value=True):
348 with mock.patch.object(self._superproject,
349 '_LsTree',
350 return_value=data):
351 # Create temporary directory so that it can write the file.
352 os.mkdir(self._superproject._superproject_path)
353 update_result = self._superproject.UpdateProjectsRevisionId(projects)
354 self.assertIsNotNone(update_result.manifest_path)
355 self.assertFalse(update_result.fatal)
356 with open(update_result.manifest_path, 'r') as fp:
357 manifest_xml_data = fp.read()
358 # Verify platform/vendor/x's project revision hasn't changed.
359 self.assertEqual(
360 sort_attributes(manifest_xml_data),
361 '<?xml version="1.0" ?><manifest>'
362 '<remote fetch="http://localhost" name="default-remote"/>'
363 '<default remote="default-remote" revision="refs/heads/main"/>'
364 '<project groups="notdefault,platform-' + self.platform + '" '
365 'name="platform/art" path="art" '
366 'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea"/>'
367 '<project name="platform/vendor/x" path="vendor/x" '
368 'revision="e9d25da64d8d365dbba7c8ee00fe8c4473fe9a06"/>'
369 '<project name="platform/vendor/y" path="vendor/y" '
370 'revision="52d3c9f7c107839ece2319d077de0cd922aa9d8f"/>'
371 '<superproject name="superproject"/>'
372 '</manifest>')
373
327 374
328if __name__ == '__main__': 375if __name__ == '__main__':
329 unittest.main() 376 unittest.main()