createrepo: Add tests for adding product certificates
If the certificate is enabled and exists, it will currently be added to all rpm repositories. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
parent
96fc6fb11e
commit
5148adf233
4
tests/fixtures/server-rpms.json
vendored
4
tests/fixtures/server-rpms.json
vendored
@ -19,7 +19,7 @@
|
|||||||
"category": "binary"
|
"category": "binary"
|
||||||
},
|
},
|
||||||
"bash-0:4.3.30-2.fc21.src": {
|
"bash-0:4.3.30-2.fc21.src": {
|
||||||
"path": "Server/source/SRPMS/b/bash-4.3.30-2.fc21.src.rpm",
|
"path": "Server/source/tree/Packages/b/bash-4.3.30-2.fc21.src.rpm",
|
||||||
"sigkey": null,
|
"sigkey": null,
|
||||||
"category": "source"
|
"category": "source"
|
||||||
},
|
},
|
||||||
@ -38,7 +38,7 @@
|
|||||||
"category": "binary"
|
"category": "binary"
|
||||||
},
|
},
|
||||||
"bash-0:4.3.30-2.fc21.src": {
|
"bash-0:4.3.30-2.fc21.src": {
|
||||||
"path": "Server/source/SRPMS/b/bash-4.3.30-2.fc21.src.rpm",
|
"path": "Server/source/tree/Packages/b/bash-4.3.30-2.fc21.src.rpm",
|
||||||
"sigkey": null,
|
"sigkey": null,
|
||||||
"category": "source"
|
"category": "source"
|
||||||
},
|
},
|
||||||
|
@ -87,7 +87,7 @@ class TestCreaterepoPhase(PungiTestCase):
|
|||||||
mock.call((compose, None, compose.variants['Everything'], 'srpm'))])
|
mock.call((compose, None, compose.variants['Everything'], 'srpm'))])
|
||||||
|
|
||||||
|
|
||||||
class TestCreateRepoThread(PungiTestCase):
|
class TestCreateVariantRepo(PungiTestCase):
|
||||||
|
|
||||||
@mock.patch('pungi.phases.createrepo.run')
|
@mock.patch('pungi.phases.createrepo.run')
|
||||||
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
||||||
@ -114,6 +114,9 @@ class TestCreateRepoThread(PungiTestCase):
|
|||||||
pkglist=list_file, skip_stat=True, update=True,
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
update_md_path=self.topdir + '/work/x86_64/repo',
|
update_md_path=self.topdir + '/work/x86_64/repo',
|
||||||
deltas=False, oldpackagedirs=None, use_xz=False)])
|
deltas=False, oldpackagedirs=None, use_xz=False)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[])
|
||||||
with open(list_file) as f:
|
with open(list_file) as f:
|
||||||
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
||||||
|
|
||||||
@ -142,10 +145,13 @@ class TestCreateRepoThread(PungiTestCase):
|
|||||||
pkglist=list_file, skip_stat=True, update=True,
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
update_md_path=self.topdir + '/work/global/repo',
|
update_md_path=self.topdir + '/work/global/repo',
|
||||||
deltas=False, oldpackagedirs=None, use_xz=False)])
|
deltas=False, oldpackagedirs=None, use_xz=False)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[])
|
||||||
with open(list_file) as f:
|
with open(list_file) as f:
|
||||||
self.assertItemsEqual(
|
self.assertItemsEqual(
|
||||||
f.read().strip().split('\n'),
|
f.read().strip().split('\n'),
|
||||||
['../SRPMS/b/bash-4.3.30-2.fc21.src.rpm'])
|
['Packages/b/bash-4.3.30-2.fc21.src.rpm'])
|
||||||
|
|
||||||
@mock.patch('pungi.phases.createrepo.run')
|
@mock.patch('pungi.phases.createrepo.run')
|
||||||
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
||||||
@ -173,6 +179,9 @@ class TestCreateRepoThread(PungiTestCase):
|
|||||||
pkglist=list_file, skip_stat=True, update=True,
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
update_md_path=self.topdir + '/work/x86_64/repo',
|
update_md_path=self.topdir + '/work/x86_64/repo',
|
||||||
deltas=False, oldpackagedirs=None, use_xz=False)])
|
deltas=False, oldpackagedirs=None, use_xz=False)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[])
|
||||||
with open(list_file) as f:
|
with open(list_file) as f:
|
||||||
self.assertEqual(f.read(), 'Packages/b/bash-debuginfo-4.3.30-2.fc21.x86_64.rpm\n')
|
self.assertEqual(f.read(), 'Packages/b/bash-debuginfo-4.3.30-2.fc21.x86_64.rpm\n')
|
||||||
|
|
||||||
@ -202,6 +211,9 @@ class TestCreateRepoThread(PungiTestCase):
|
|||||||
pkglist=list_file, skip_stat=True, update=True,
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
update_md_path=self.topdir + '/work/x86_64/repo',
|
update_md_path=self.topdir + '/work/x86_64/repo',
|
||||||
deltas=False, oldpackagedirs=None, use_xz=False)])
|
deltas=False, oldpackagedirs=None, use_xz=False)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[])
|
||||||
with open(list_file) as f:
|
with open(list_file) as f:
|
||||||
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
||||||
|
|
||||||
@ -232,6 +244,9 @@ class TestCreateRepoThread(PungiTestCase):
|
|||||||
pkglist=list_file, skip_stat=True, update=True,
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
update_md_path=self.topdir + '/work/x86_64/repo',
|
update_md_path=self.topdir + '/work/x86_64/repo',
|
||||||
deltas=False, oldpackagedirs=None, use_xz=False)])
|
deltas=False, oldpackagedirs=None, use_xz=False)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[])
|
||||||
with open(list_file) as f:
|
with open(list_file) as f:
|
||||||
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
||||||
|
|
||||||
@ -261,6 +276,9 @@ class TestCreateRepoThread(PungiTestCase):
|
|||||||
pkglist=list_file, skip_stat=True, update=True,
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
update_md_path=self.topdir + '/work/x86_64/repo', deltas=False,
|
update_md_path=self.topdir + '/work/x86_64/repo', deltas=False,
|
||||||
oldpackagedirs=None, use_xz=True)])
|
oldpackagedirs=None, use_xz=True)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[])
|
||||||
with open(list_file) as f:
|
with open(list_file) as f:
|
||||||
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
||||||
|
|
||||||
@ -293,6 +311,9 @@ class TestCreateRepoThread(PungiTestCase):
|
|||||||
update_md_path=self.topdir + '/work/x86_64/repo', deltas=True,
|
update_md_path=self.topdir + '/work/x86_64/repo', deltas=True,
|
||||||
oldpackagedirs=self.topdir + '/old/test-1.0-20151203.0/compose/Server/x86_64/os',
|
oldpackagedirs=self.topdir + '/old/test-1.0-20151203.0/compose/Server/x86_64/os',
|
||||||
use_xz=False)])
|
use_xz=False)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[])
|
||||||
with open(list_file) as f:
|
with open(list_file) as f:
|
||||||
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
||||||
|
|
||||||
@ -325,10 +346,13 @@ class TestCreateRepoThread(PungiTestCase):
|
|||||||
update_md_path=self.topdir + '/work/global/repo', deltas=True,
|
update_md_path=self.topdir + '/work/global/repo', deltas=True,
|
||||||
oldpackagedirs=self.topdir + '/old/test-1.0-20151203.0/compose/Server/source/tree',
|
oldpackagedirs=self.topdir + '/old/test-1.0-20151203.0/compose/Server/source/tree',
|
||||||
use_xz=False)])
|
use_xz=False)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[])
|
||||||
with open(list_file) as f:
|
with open(list_file) as f:
|
||||||
self.assertItemsEqual(
|
self.assertItemsEqual(
|
||||||
f.read().strip().split('\n'),
|
f.read().strip().split('\n'),
|
||||||
['../SRPMS/b/bash-4.3.30-2.fc21.src.rpm'])
|
['Packages/b/bash-4.3.30-2.fc21.src.rpm'])
|
||||||
|
|
||||||
@mock.patch('pungi.phases.createrepo.run')
|
@mock.patch('pungi.phases.createrepo.run')
|
||||||
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
||||||
@ -359,9 +383,116 @@ class TestCreateRepoThread(PungiTestCase):
|
|||||||
update_md_path=self.topdir + '/work/x86_64/repo', deltas=True,
|
update_md_path=self.topdir + '/work/x86_64/repo', deltas=True,
|
||||||
oldpackagedirs=self.topdir + '/old/test-1.0-20151203.0/compose/Server/x86_64/debug/tree',
|
oldpackagedirs=self.topdir + '/old/test-1.0-20151203.0/compose/Server/x86_64/debug/tree',
|
||||||
use_xz=False)])
|
use_xz=False)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[])
|
||||||
with open(list_file) as f:
|
with open(list_file) as f:
|
||||||
self.assertEqual(f.read(), 'Packages/b/bash-debuginfo-4.3.30-2.fc21.x86_64.rpm\n')
|
self.assertEqual(f.read(), 'Packages/b/bash-debuginfo-4.3.30-2.fc21.x86_64.rpm\n')
|
||||||
|
|
||||||
|
@mock.patch('pungi.phases.createrepo.run')
|
||||||
|
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
||||||
|
def test_variant_repo_rpms_with_productid(self, CreaterepoWrapperCls, run):
|
||||||
|
compose = DummyCompose(self.topdir, {
|
||||||
|
'createrepo_checksum': 'sha256',
|
||||||
|
'product_id': 'yes', # Truthy value is enough for this test
|
||||||
|
})
|
||||||
|
compose.DEBUG = False
|
||||||
|
compose.has_comps = False
|
||||||
|
product_id = compose.paths.work.product_id('x86_64', compose.variants['Server'])
|
||||||
|
repodata_dir = os.path.join(
|
||||||
|
compose.paths.compose.os_tree('x86_64', compose.variants['Server']),
|
||||||
|
'repodata')
|
||||||
|
touch(product_id)
|
||||||
|
os.mkdir(repodata_dir)
|
||||||
|
|
||||||
|
repo = CreaterepoWrapperCls.return_value
|
||||||
|
copy_fixture('server-rpms.json', compose.paths.compose.metadata('rpms.json'))
|
||||||
|
|
||||||
|
create_variant_repo(compose, 'x86_64', compose.variants['Server'], 'rpm')
|
||||||
|
|
||||||
|
self.maxDiff = None
|
||||||
|
list_file = self.topdir + '/work/x86_64/repo_package_list/Server.x86_64.rpm.conf'
|
||||||
|
self.assertEqual(CreaterepoWrapperCls.mock_calls[0],
|
||||||
|
mock.call(createrepo_c=True))
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_createrepo_cmd.mock_calls,
|
||||||
|
[mock.call(self.topdir + '/compose/Server/x86_64/os', checksum='sha256',
|
||||||
|
database=True, groupfile=None, workers=3,
|
||||||
|
outputdir=self.topdir + '/compose/Server/x86_64/os',
|
||||||
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
|
update_md_path=self.topdir + '/work/x86_64/repo', deltas=False,
|
||||||
|
oldpackagedirs=None,
|
||||||
|
use_xz=False)])
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_modifyrepo_cmd.mock_calls,
|
||||||
|
[mock.call(repodata_dir, product_id, compress_type='gz')])
|
||||||
|
with open(list_file) as f:
|
||||||
|
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.x86_64.rpm\n')
|
||||||
|
|
||||||
|
@mock.patch('pungi.phases.createrepo.run')
|
||||||
|
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
||||||
|
def test_variant_repo_debug_with_productid(self, CreaterepoWrapperCls, run):
|
||||||
|
compose = DummyCompose(self.topdir, {
|
||||||
|
'createrepo_checksum': 'sha256',
|
||||||
|
'product_id': 'yes', # Truthy value is enough for this test
|
||||||
|
})
|
||||||
|
compose.DEBUG = False
|
||||||
|
compose.has_comps = False
|
||||||
|
|
||||||
|
repo = CreaterepoWrapperCls.return_value
|
||||||
|
copy_fixture('server-rpms.json', compose.paths.compose.metadata('rpms.json'))
|
||||||
|
|
||||||
|
create_variant_repo(compose, 'x86_64', compose.variants['Server'], 'debuginfo')
|
||||||
|
|
||||||
|
self.maxDiff = None
|
||||||
|
list_file = self.topdir + '/work/x86_64/repo_package_list/Server.x86_64.debuginfo.conf'
|
||||||
|
self.assertEqual(CreaterepoWrapperCls.mock_calls[0],
|
||||||
|
mock.call(createrepo_c=True))
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_createrepo_cmd.mock_calls,
|
||||||
|
[mock.call(self.topdir + '/compose/Server/x86_64/debug/tree', checksum='sha256',
|
||||||
|
database=True, groupfile=None, workers=3,
|
||||||
|
outputdir=self.topdir + '/compose/Server/x86_64/debug/tree',
|
||||||
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
|
update_md_path=self.topdir + '/work/x86_64/repo', deltas=False,
|
||||||
|
oldpackagedirs=None,
|
||||||
|
use_xz=False)])
|
||||||
|
self.assertItemsEqual(repo.get_modifyrepo_cmd.mock_calls, [])
|
||||||
|
with open(list_file) as f:
|
||||||
|
self.assertEqual(f.read(), 'Packages/b/bash-debuginfo-4.3.30-2.fc21.x86_64.rpm\n')
|
||||||
|
|
||||||
|
@mock.patch('pungi.phases.createrepo.run')
|
||||||
|
@mock.patch('pungi.phases.createrepo.CreaterepoWrapper')
|
||||||
|
def test_variant_repo_source_with_productid(self, CreaterepoWrapperCls, run):
|
||||||
|
compose = DummyCompose(self.topdir, {
|
||||||
|
'createrepo_checksum': 'sha256',
|
||||||
|
'product_id': 'yes', # Truthy value is enough for this test
|
||||||
|
})
|
||||||
|
compose.DEBUG = False
|
||||||
|
compose.has_comps = False
|
||||||
|
|
||||||
|
repo = CreaterepoWrapperCls.return_value
|
||||||
|
copy_fixture('server-rpms.json', compose.paths.compose.metadata('rpms.json'))
|
||||||
|
|
||||||
|
create_variant_repo(compose, None, compose.variants['Server'], 'srpm')
|
||||||
|
|
||||||
|
self.maxDiff = None
|
||||||
|
list_file = self.topdir + '/work/global/repo_package_list/Server.None.srpm.conf'
|
||||||
|
self.assertEqual(CreaterepoWrapperCls.mock_calls[0],
|
||||||
|
mock.call(createrepo_c=True))
|
||||||
|
self.assertItemsEqual(
|
||||||
|
repo.get_createrepo_cmd.mock_calls,
|
||||||
|
[mock.call(self.topdir + '/compose/Server/source/tree', checksum='sha256',
|
||||||
|
database=True, groupfile=None, workers=3,
|
||||||
|
outputdir=self.topdir + '/compose/Server/source/tree',
|
||||||
|
pkglist=list_file, skip_stat=True, update=True,
|
||||||
|
update_md_path=self.topdir + '/work/global/repo', deltas=False,
|
||||||
|
oldpackagedirs=None,
|
||||||
|
use_xz=False)])
|
||||||
|
self.assertItemsEqual(repo.get_modifyrepo_cmd.mock_calls, [])
|
||||||
|
with open(list_file) as f:
|
||||||
|
self.assertEqual(f.read(), 'Packages/b/bash-4.3.30-2.fc21.src.rpm\n')
|
||||||
|
|
||||||
|
|
||||||
class ANYSingleton(object):
|
class ANYSingleton(object):
|
||||||
"""An object that is equal to anything."""
|
"""An object that is equal to anything."""
|
||||||
|
Loading…
Reference in New Issue
Block a user