Add test for selecting multibuild with 2 spec

This commit is contained in:
Stephan Kulow 2019-12-05 16:12:33 +01:00
parent ce9158abcc
commit 7113e5fedc
2 changed files with 28 additions and 3 deletions

View File

@ -936,12 +936,16 @@ class StagingAPI(object):
# guarantee the sub-pacakges are created according to the
# specfiles of main package. Therefore, main package must be
# created before through get_sub_packages().
filelist = self.get_filelist_for_package(pkgname=package, project=project, expand='1', extension='spec')
filelist = self.get_filelist_for_package(pkgname=package, project=project, expand='1')
if '_multibuild' in filelist:
return [package]
mainspec = "{}{}".format(package, '.spec')
if mainspec in filelist:
filelist.remove(mainspec)
for spec in filelist:
ret.append(spec[:-5])
for file in filelist:
if file.endswith('.spec'):
ret.append(file[:-5])
return ret

View File

@ -68,3 +68,24 @@ class TestSelect(unittest.TestCase):
# no stale links
self.assertEqual([], package_list(self.wf.apiurl, staging.name))
def test_select_multibuild_package(self):
self.wf.setup_rings()
staging = self.wf.create_staging('A', freeze=True)
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-tests.spec')
package.create_commit('<multibuild><flavor>gcc9-tests.spec</flavor></multibuild>', filename='_multibuild')
self.wf.submit_package(package)
ret = SelectCommand(self.wf.api, staging.name).perform(['gcc9'])
self.assertEqual(True, ret)
self.assertEqual(package_list(self.wf.apiurl, staging.name), ['gcc9'])
uc = UnselectCommand(self.wf.api)
self.assertIsNone(uc.perform(['gcc9'], False, None))
# no stale links
self.assertEqual([], package_list(self.wf.apiurl, staging.name))