summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--manifest_xml.py2
-rw-r--r--tests/test_manifest_xml.py11
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