diff options
| -rw-r--r-- | manifest_xml.py | 2 | ||||
| -rw-r--r-- | tests/test_manifest_xml.py | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/manifest_xml.py b/manifest_xml.py index edbebaa3..7e533a02 100644 --- a/manifest_xml.py +++ b/manifest_xml.py | |||
| @@ -134,7 +134,7 @@ def normalize_url(url: str) -> str: | |||
| 134 | parsed_url = urllib.parse.urlparse(url) | 134 | parsed_url = urllib.parse.urlparse(url) |
| 135 | 135 | ||
| 136 | # This matches patterns like "git@github.com:foo/bar". | 136 | # This matches patterns like "git@github.com:foo/bar". |
| 137 | scp_like_url_re = r"^[^:]+@[^:]+:[^/]+/" | 137 | scp_like_url_re = r"^[^/:]+@[^/:]+:[^/]+/" |
| 138 | 138 | ||
| 139 | # If our URL is missing a schema and matches git's | 139 | # If our URL is missing a schema and matches git's |
| 140 | # SCP-like syntax we should convert it to a proper | 140 | # SCP-like syntax we should convert it to a proper |
diff --git a/tests/test_manifest_xml.py b/tests/test_manifest_xml.py index 11c0c15e..6423bb96 100644 --- a/tests/test_manifest_xml.py +++ b/tests/test_manifest_xml.py | |||
| @@ -1139,6 +1139,17 @@ class NormalizeUrlTests(ManifestParseTestCase): | |||
| 1139 | "http://foo.com/bar/baz", manifest_xml.normalize_url(url) | 1139 | "http://foo.com/bar/baz", manifest_xml.normalize_url(url) |
| 1140 | ) | 1140 | ) |
| 1141 | 1141 | ||
| 1142 | def test_has_leading_slash(self): | ||
| 1143 | """SCP-like syntax except a / comes before the : which git disallows.""" | ||
| 1144 | url = "/git@foo.com:bar/baf" | ||
| 1145 | self.assertEqual(url, manifest_xml.normalize_url(url)) | ||
| 1146 | |||
| 1147 | url = "gi/t@foo.com:bar/baf" | ||
| 1148 | self.assertEqual(url, manifest_xml.normalize_url(url)) | ||
| 1149 | |||
| 1150 | url = "git@fo/o.com:bar/baf" | ||
| 1151 | self.assertEqual(url, manifest_xml.normalize_url(url)) | ||
| 1152 | |||
| 1142 | def test_has_no_scheme(self): | 1153 | def test_has_no_scheme(self): |
| 1143 | """Deal with cases where we have no scheme, but we also | 1154 | """Deal with cases where we have no scheme, but we also |
| 1144 | aren't dealing with the git SCP-like syntax | 1155 | aren't dealing with the git SCP-like syntax |
