diff options
| author | Michael Kelly <mkelly@arista.com> | 2020-06-13 02:10:40 -0700 |
|---|---|---|
| committer | Michael Kelly <mkelly@arista.com> | 2021-09-28 20:12:00 +0000 |
| commit | 37c21c268badc2602a827d2236027e235fff95e0 (patch) | |
| tree | d2d8c1b751e38036acb6a530bea9b6dae121147b /tests/test_manifest_xml.py | |
| parent | b12c369e0bce29914a50aca258271b25893d2857 (diff) | |
| download | git-repo-37c21c268badc2602a827d2236027e235fff95e0.tar.gz | |
Add 'dest-path' to extend-project to support changing path
This allows us to move the repository to a new location in the source
tree without having to remove-project + add a new project tag.
Change-Id: I4dba6151842e57f6f2b8fe60cda260ecea68b7b4
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/310962
Reviewed-by: Mike Frysinger <vapier@google.com>
Tested-by: Michael Kelly <mkelly@arista.com>
Diffstat (limited to 'tests/test_manifest_xml.py')
| -rw-r--r-- | tests/test_manifest_xml.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/test_manifest_xml.py b/tests/test_manifest_xml.py index ce422536..cb3eb855 100644 --- a/tests/test_manifest_xml.py +++ b/tests/test_manifest_xml.py | |||
| @@ -797,3 +797,49 @@ class RemoveProjectElementTests(ManifestParseTestCase): | |||
| 797 | </manifest> | 797 | </manifest> |
| 798 | """) | 798 | """) |
| 799 | self.assertEqual(manifest.projects, []) | 799 | self.assertEqual(manifest.projects, []) |
| 800 | |||
| 801 | |||
| 802 | class ExtendProjectElementTests(ManifestParseTestCase): | ||
| 803 | """Tests for <extend-project>.""" | ||
| 804 | |||
| 805 | def test_extend_project_dest_path_single_match(self): | ||
| 806 | manifest = self.getXmlManifest(""" | ||
| 807 | <manifest> | ||
| 808 | <remote name="default-remote" fetch="http://localhost" /> | ||
| 809 | <default remote="default-remote" revision="refs/heads/main" /> | ||
| 810 | <project name="myproject" /> | ||
| 811 | <extend-project name="myproject" dest-path="bar" /> | ||
| 812 | </manifest> | ||
| 813 | """) | ||
| 814 | self.assertEqual(len(manifest.projects), 1) | ||
| 815 | self.assertEqual(manifest.projects[0].relpath, 'bar') | ||
| 816 | |||
| 817 | def test_extend_project_dest_path_multi_match(self): | ||
| 818 | with self.assertRaises(manifest_xml.ManifestParseError): | ||
| 819 | manifest = self.getXmlManifest(""" | ||
| 820 | <manifest> | ||
| 821 | <remote name="default-remote" fetch="http://localhost" /> | ||
| 822 | <default remote="default-remote" revision="refs/heads/main" /> | ||
| 823 | <project name="myproject" path="x" /> | ||
| 824 | <project name="myproject" path="y" /> | ||
| 825 | <extend-project name="myproject" dest-path="bar" /> | ||
| 826 | </manifest> | ||
| 827 | """) | ||
| 828 | manifest.projects | ||
| 829 | |||
| 830 | def test_extend_project_dest_path_multi_match_path_specified(self): | ||
| 831 | manifest = self.getXmlManifest(""" | ||
| 832 | <manifest> | ||
| 833 | <remote name="default-remote" fetch="http://localhost" /> | ||
| 834 | <default remote="default-remote" revision="refs/heads/main" /> | ||
| 835 | <project name="myproject" path="x" /> | ||
| 836 | <project name="myproject" path="y" /> | ||
| 837 | <extend-project name="myproject" path="x" dest-path="bar" /> | ||
| 838 | </manifest> | ||
| 839 | """) | ||
| 840 | self.assertEqual(len(manifest.projects), 2) | ||
| 841 | if manifest.projects[0].relpath == 'y': | ||
| 842 | self.assertEqual(manifest.projects[1].relpath, 'bar') | ||
| 843 | else: | ||
| 844 | self.assertEqual(manifest.projects[0].relpath, 'bar') | ||
| 845 | self.assertEqual(manifest.projects[1].relpath, 'y') | ||
