From 9bc96802850005e73ad913f87066a10830cdd2ca Mon Sep 17 00:00:00 2001 From: Alex Iribarren Date: Thu, 24 Feb 2022 16:14:23 +0100 Subject: [PATCH] Fix parsing of URLs with port numbers --- koji/daemon.py | 2 +- tests/test_scm.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/koji/daemon.py b/koji/daemon.py index 9c3aa55b..d4878034 100644 --- a/koji/daemon.py +++ b/koji/daemon.py @@ -301,7 +301,7 @@ class SCM(object): if password is not None and not allow_password: raise koji.GenericError('username:password format not supported: %s:%s' % (user, password)) - netloc = parsed_url.hostname + netloc = userhost[-1] # check for empty path before we apply normpath if not path: diff --git a/tests/test_scm.py b/tests/test_scm.py index 13956c52..a75f2596 100644 --- a/tests/test_scm.py +++ b/tests/test_scm.py @@ -53,6 +53,7 @@ class TestSCM(unittest.TestCase): "svn+ssh://server/some/path#bab0c73900241ef5c465d7e873e9d8b34c948e67", "cvs://server/some/path#bab0c73900241ef5c465d7e873e9d8b34c948e67", "cvs+ssh://server/some/path#bab0c73900241ef5c465d7e873e9d8b34c948e67", + "cvs+ssh://server:80/some/path#bab0c73900241ef5c465d7e873e9d8b34c948e67", ] bad = [ "http://localhost/foo.html", @@ -98,6 +99,19 @@ class TestSCM(unittest.TestCase): self.assertEqual(scm.source_cmd, ['make', 'sources']) self.assertEqual(scm.scmtype, 'GIT') + def test_with_port(self): + url = "git+ssh://user@server:80/foo.git#bab0c73900241ef5c465d7e873e9d8b34c948e67" + scm = SCM(url) + self.assertEqual(scm.scheme, 'git+ssh://') + self.assertEqual(scm.user, 'user') + self.assertEqual(scm.host, 'server:80') + self.assertEqual(scm.repository, '/foo.git') + self.assertEqual(scm.module, '') + self.assertEqual(scm.revision, 'bab0c73900241ef5c465d7e873e9d8b34c948e67') + self.assertEqual(scm.use_common, True) + self.assertEqual(scm.source_cmd, ['make', 'sources']) + self.assertEqual(scm.scmtype, 'GIT+SSH') + def test_assert_allowed_basic(self): scm = SCM("git://scm.example.com/path1#1234")