diff options
Diffstat (limited to 'tests/test_git_superproject.py')
| -rw-r--r-- | tests/test_git_superproject.py | 70 |
1 files changed, 57 insertions, 13 deletions
diff --git a/tests/test_git_superproject.py b/tests/test_git_superproject.py index 9550949b..5c1455f5 100644 --- a/tests/test_git_superproject.py +++ b/tests/test_git_superproject.py | |||
| @@ -141,12 +141,12 @@ class SuperprojectTestCase(unittest.TestCase): | |||
| 141 | manifest_xml = fp.read() | 141 | manifest_xml = fp.read() |
| 142 | self.assertEqual( | 142 | self.assertEqual( |
| 143 | manifest_xml, | 143 | manifest_xml, |
| 144 | '<?xml version="1.0" ?><manifest>' + | 144 | '<?xml version="1.0" ?><manifest>' |
| 145 | '<remote name="default-remote" fetch="http://localhost"/>' + | 145 | '<remote name="default-remote" fetch="http://localhost"/>' |
| 146 | '<default remote="default-remote" revision="refs/heads/main"/>' + | 146 | '<default remote="default-remote" revision="refs/heads/main"/>' |
| 147 | '<project name="platform/art" path="art" revision="ABCDEF" ' + | 147 | '<project name="platform/art" path="art" revision="ABCDEF" ' |
| 148 | 'groups="notdefault,platform-' + self.platform + '"/>' + | 148 | 'groups="notdefault,platform-' + self.platform + '"/>' |
| 149 | '<superproject name="superproject"/>' + | 149 | '<superproject name="superproject"/>' |
| 150 | '</manifest>') | 150 | '</manifest>') |
| 151 | 151 | ||
| 152 | def test_superproject_update_project_revision_id(self): | 152 | def test_superproject_update_project_revision_id(self): |
| @@ -168,13 +168,57 @@ class SuperprojectTestCase(unittest.TestCase): | |||
| 168 | manifest_xml = fp.read() | 168 | manifest_xml = fp.read() |
| 169 | self.assertEqual( | 169 | self.assertEqual( |
| 170 | manifest_xml, | 170 | manifest_xml, |
| 171 | '<?xml version="1.0" ?><manifest>' + | 171 | '<?xml version="1.0" ?><manifest>' |
| 172 | '<remote name="default-remote" fetch="http://localhost"/>' + | 172 | '<remote name="default-remote" fetch="http://localhost"/>' |
| 173 | '<default remote="default-remote" revision="refs/heads/main"/>' + | 173 | '<default remote="default-remote" revision="refs/heads/main"/>' |
| 174 | '<project name="platform/art" path="art" ' + | 174 | '<project name="platform/art" path="art" ' |
| 175 | 'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea" ' + | 175 | 'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea" ' |
| 176 | 'groups="notdefault,platform-' + self.platform + '"/>' + | 176 | 'groups="notdefault,platform-' + self.platform + '"/>' |
| 177 | '<superproject name="superproject"/>' + | 177 | '<superproject name="superproject"/>' |
| 178 | '</manifest>') | ||
| 179 | |||
| 180 | def test_superproject_update_project_revision_id_with_different_remotes(self): | ||
| 181 | """Test update of commit ids of a manifest with mutiple remotes.""" | ||
| 182 | manifest = self.getXmlManifest(""" | ||
| 183 | <manifest> | ||
| 184 | <remote name="default-remote" fetch="http://localhost" /> | ||
| 185 | <remote name="goog" fetch="http://localhost2" /> | ||
| 186 | <default remote="default-remote" revision="refs/heads/main" /> | ||
| 187 | <superproject name="superproject"/> | ||
| 188 | <project path="vendor/x" name="platform/vendor/x" remote="goog" groups="vendor" | ||
| 189 | revision="master-with-vendor" clone-depth="1" /> | ||
| 190 | <project path="art" name="platform/art" groups="notdefault,platform-""" + self.platform + """ | ||
| 191 | " /></manifest> | ||
| 192 | """) | ||
| 193 | self.maxDiff = None | ||
| 194 | self._superproject = git_superproject.Superproject(manifest, self.repodir) | ||
| 195 | self.assertEqual(len(self._superproject._manifest.projects), 2) | ||
| 196 | projects = self._superproject._manifest.projects | ||
| 197 | data = ('160000 commit 2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea\tart\x00' | ||
| 198 | '160000 commit e9d25da64d8d365dbba7c8ee00fe8c4473fe9a06\tbootable/recovery\x00') | ||
| 199 | with mock.patch.object(self._superproject, '_Init', return_value=True): | ||
| 200 | with mock.patch.object(self._superproject, '_Fetch', return_value=True): | ||
| 201 | with mock.patch.object(self._superproject, | ||
| 202 | '_LsTree', | ||
| 203 | return_value=data): | ||
| 204 | # Create temporary directory so that it can write the file. | ||
| 205 | os.mkdir(self._superproject._superproject_path) | ||
| 206 | manifest_path = self._superproject.UpdateProjectsRevisionId(projects) | ||
| 207 | self.assertIsNotNone(manifest_path) | ||
| 208 | with open(manifest_path, 'r') as fp: | ||
| 209 | manifest_xml = fp.read() | ||
| 210 | self.assertEqual( | ||
| 211 | manifest_xml, | ||
| 212 | '<?xml version="1.0" ?><manifest>' | ||
| 213 | '<remote name="default-remote" fetch="http://localhost"/>' | ||
| 214 | '<remote name="goog" fetch="http://localhost2"/>' | ||
| 215 | '<default remote="default-remote" revision="refs/heads/main"/>' | ||
| 216 | '<project name="platform/art" path="art" ' | ||
| 217 | 'revision="2c2724cb36cd5a9cec6c852c681efc3b7c6b86ea" ' | ||
| 218 | 'groups="notdefault,platform-' + self.platform + '"/>' | ||
| 219 | '<project name="platform/vendor/x" path="vendor/x" remote="goog" ' | ||
| 220 | 'revision="master-with-vendor" groups="vendor" clone-depth="1"/>' | ||
| 221 | '<superproject name="superproject"/>' | ||
| 178 | '</manifest>') | 222 | '</manifest>') |
| 179 | 223 | ||
| 180 | 224 | ||
