From 345321f98d1653df4059ddcb9d5e762ab8d3f99c Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Fri, 6 Dec 2019 11:43:59 +0100 Subject: [PATCH] Don't take multibuild packages as subpackage of itself --- osclib/stagingapi.py | 2 +- tests/select_tests.py | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/osclib/stagingapi.py b/osclib/stagingapi.py index d9cadb4e..f20718ef 100644 --- a/osclib/stagingapi.py +++ b/osclib/stagingapi.py @@ -946,7 +946,7 @@ class StagingAPI(object): # created before through get_sub_packages(). filelist = self.get_filelist_for_package(pkgname=package, project=project, expand='1') if '_multibuild' in filelist: - return [package] + return [] mainspec = "{}{}".format(package, '.spec') if mainspec in filelist: diff --git a/tests/select_tests.py b/tests/select_tests.py index d37fadaf..48763879 100644 --- a/tests/select_tests.py +++ b/tests/select_tests.py @@ -11,6 +11,7 @@ from osclib.select_command import SelectCommand from osclib.unselect_command import UnselectCommand from osclib.stagingapi import StagingAPI from osclib.memoize import memoize_session_reset +from osclib.core import source_file_load import logging from mock import MagicMock @@ -55,7 +56,7 @@ class TestSelect(unittest.TestCase): project = self.wf.create_project('devel:gcc') package = OBSLocal.Package(name='gcc8', project=project) - package.create_commit(filename='gcc8.spec') + package.create_commit(filename='gcc8.spec', text='Name: gcc8') package.create_commit(filename='gcc8-tests.spec') self.wf.submit_package(package) @@ -63,6 +64,12 @@ class TestSelect(unittest.TestCase): self.assertEqual(True, ret) self.assertEqual(package_list(self.wf.apiurl, staging.name), ['gcc8', 'gcc8-tests']) + file = source_file_load(self.wf.apiurl, staging.name, 'gcc8', 'gcc8.spec') + self.assertEqual(file, 'Name: gcc8') + # we should see the spec file also in the 2nd package + file = source_file_load(self.wf.apiurl, staging.name, 'gcc8-tests', 'gcc8.spec') + self.assertEqual(file, 'Name: gcc8') + uc = UnselectCommand(self.wf.api) self.assertIsNone(uc.perform(['gcc8'], False, None)) @@ -75,7 +82,7 @@ class TestSelect(unittest.TestCase): project = self.wf.create_project('devel:gcc') package = OBSLocal.Package(name='gcc9', project=project) - package.create_commit(filename='gcc9.spec') + package.create_commit(filename='gcc9.spec', text='Name: gcc9') package.create_commit(filename='gcc9-tests.spec') package.create_commit('gcc9-tests.spec', filename='_multibuild') self.wf.submit_package(package) @@ -84,6 +91,9 @@ class TestSelect(unittest.TestCase): self.assertEqual(True, ret) self.assertEqual(package_list(self.wf.apiurl, staging.name), ['gcc9']) + file = source_file_load(self.wf.apiurl, staging.name, 'gcc9', 'gcc9.spec') + self.assertEqual(file, 'Name: gcc9') + uc = UnselectCommand(self.wf.api) self.assertIsNone(uc.perform(['gcc9'], False, None))