diff --git a/znoyder/browser.py b/znoyder/browser.py index 68ed97c..33000fc 100644 --- a/znoyder/browser.py +++ b/znoyder/browser.py @@ -16,6 +16,8 @@ # under the License. # +import re + from pprint import PrettyPrinter from urllib.parse import urlparse @@ -72,7 +74,11 @@ def get_packages(**kwargs): if kwargs.get('upstream') in str(package.get('upstream'))] for package in packages: - package['osp-project'] = urlparse(package['osp-patches']).path[1:] + repo_name = re.search(r'^(.*)\/(.*)$', package['osp-patches']).group(2) + if repo_name.endswith('.git'): + repo_name = repo_name[:-4] # drop the suffix + package['osp-project'] = repo_name + if kwargs.get('osp_project'): packages = [package for package in packages if kwargs.get('osp_project') == package.get('osp-project')] diff --git a/znoyder/tests/test_browser.py b/znoyder/tests/test_browser.py index 6e4dbc5..2135d5e 100644 --- a/znoyder/tests/test_browser.py +++ b/znoyder/tests/test_browser.py @@ -98,13 +98,13 @@ def test_search_by_name(self): class TestGetPackages(TestCase): def test_no_args(self): - project = 'some/project' + project = 'project' packages = [ { 'osp-name': 'pack_1', 'osp-project': '', - 'osp-patches': 'http://localhost:8080/%s' % project + 'osp-patches': 'http://localhost:8080/some/%s' % project } ] @@ -222,7 +222,14 @@ def test_search_by_osp_project(self): 'project': 'project_2', } - packages = [package1, package2] + package3 = { + 'name': 'name_3', + 'osp-name': 'pack_3', + 'osp-patches': 'git@gitlab.com:eng/test/repo_name_3.git', + 'project': 'project_3', + } + + packages = [package1, package2, package3] info_call = znoyder.browser.get_distroinfo = Mock() @@ -235,6 +242,11 @@ def test_search_by_osp_project(self): get_packages(osp_project=package1['osp-project']) ) + self.assertEqual( + [package3], + get_packages(osp_project='repo_name_3') + ) + def test_search_by_project(self): package1 = { 'name': 'name_1',