Merge #342 Simplify naming format placeholders
This commit is contained in:
commit
9861e80c80
@ -290,7 +290,7 @@ class Compose(kobo.log.LoggingBase):
|
|||||||
|
|
||||||
:raises RuntimeError: when unknown ``disc_type`` is given
|
:raises RuntimeError: when unknown ``disc_type`` is given
|
||||||
"""
|
"""
|
||||||
default_format = "%(compose_id)s-%(variant)s-%(arch)s-%(disc_type)s%(disc_num)s%(suffix)s"
|
default_format = "{compose_id}-{variant}-{arch}-{disc_type}{disc_num}{suffix}"
|
||||||
format = format or self.conf.get('image_name_format', default_format)
|
format = format or self.conf.get('image_name_format', default_format)
|
||||||
|
|
||||||
if arch == "src":
|
if arch == "src":
|
||||||
@ -312,7 +312,7 @@ class Compose(kobo.log.LoggingBase):
|
|||||||
disc_num=disc_num,
|
disc_num=disc_num,
|
||||||
suffix=suffix)
|
suffix=suffix)
|
||||||
try:
|
try:
|
||||||
return format % args
|
return (format % args).format(**args)
|
||||||
except KeyError as err:
|
except KeyError as err:
|
||||||
raise RuntimeError('Failed to create image name: unknown format element: %s' % err.message)
|
raise RuntimeError('Failed to create image name: unknown format element: %s' % err.message)
|
||||||
|
|
||||||
|
@ -74,7 +74,7 @@ class ImageChecksumPhase(PhaseBase):
|
|||||||
base_checksum_name = self.compose.conf.get('media_checksum_base_filename', '')
|
base_checksum_name = self.compose.conf.get('media_checksum_base_filename', '')
|
||||||
if base_checksum_name:
|
if base_checksum_name:
|
||||||
substs = get_format_substs(self.compose, variant=variant, arch=arch)
|
substs = get_format_substs(self.compose, variant=variant, arch=arch)
|
||||||
base_checksum_name = base_checksum_name % substs
|
base_checksum_name = (base_checksum_name % substs).format(**substs)
|
||||||
base_checksum_name += '-'
|
base_checksum_name += '-'
|
||||||
return base_checksum_name
|
return base_checksum_name
|
||||||
|
|
||||||
|
@ -354,13 +354,13 @@ def get_volid(compose, arch, variant=None, escape_spaces=False, disc_type=False)
|
|||||||
variant_uid = variant and variant.uid or None
|
variant_uid = variant and variant.uid or None
|
||||||
|
|
||||||
products = [
|
products = [
|
||||||
"%(release_short)s-%(version)s %(variant)s.%(arch)s",
|
"{release_short}-{version} {variant}.{arch}",
|
||||||
"%(release_short)s-%(version)s %(arch)s",
|
"{release_short}-{version} {arch}",
|
||||||
]
|
]
|
||||||
products = compose.conf.get('image_volid_formats', products)
|
products = compose.conf.get('image_volid_formats', products)
|
||||||
layered_products = [
|
layered_products = [
|
||||||
"%(release_short)s-%(version)s %(base_product_short)s-%(base_product_version)s %(variant)s.%(arch)s",
|
"{release_short}-{version} {base_product_short}-{base_product_version} {variant}.{arch}",
|
||||||
"%(release_short)s-%(version)s %(base_product_short)s-%(base_product_version)s %(arch)s",
|
"{release_short}-{version} {base_product_short}-{base_product_version} {arch}",
|
||||||
]
|
]
|
||||||
layered_products = compose.conf.get('image_volid_layered_product_formats', layered_products)
|
layered_products = compose.conf.get('image_volid_layered_product_formats', layered_products)
|
||||||
|
|
||||||
@ -374,14 +374,15 @@ def get_volid(compose, arch, variant=None, escape_spaces=False, disc_type=False)
|
|||||||
if not variant_uid and "%(variant)s" in i:
|
if not variant_uid and "%(variant)s" in i:
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
volid = i % get_format_substs(compose,
|
args = get_format_substs(compose,
|
||||||
variant=variant_uid,
|
variant=variant_uid,
|
||||||
release_short=release_short,
|
release_short=release_short,
|
||||||
version=release_version,
|
version=release_version,
|
||||||
arch=arch,
|
arch=arch,
|
||||||
disc_type=disc_type or '',
|
disc_type=disc_type or '',
|
||||||
base_product_short=base_product_short,
|
base_product_short=base_product_short,
|
||||||
base_product_version=base_product_version)
|
base_product_version=base_product_version)
|
||||||
|
volid = (i % args).format(**args)
|
||||||
except KeyError as err:
|
except KeyError as err:
|
||||||
raise RuntimeError('Failed to create volume id: unknown format element: %s' % err.message)
|
raise RuntimeError('Failed to create volume id: unknown format element: %s' % err.message)
|
||||||
volid = _apply_substitutions(compose, volid)
|
volid = _apply_substitutions(compose, volid)
|
||||||
|
@ -137,6 +137,38 @@ class TestImageChecksumPhase(PungiTestCase):
|
|||||||
mock.call(None, 'md5', 'cafebabe')],
|
mock.call(None, 'md5', 'cafebabe')],
|
||||||
any_order=True)
|
any_order=True)
|
||||||
|
|
||||||
|
@mock.patch('os.path.exists')
|
||||||
|
@mock.patch('kobo.shortcuts.compute_file_checksums')
|
||||||
|
@mock.patch('pungi.phases.image_checksum.dump_checksums')
|
||||||
|
def test_checksum_save_individuals_custom_name_str_format(self, dump, cc, exists):
|
||||||
|
compose = DummyCompose(self.topdir, {
|
||||||
|
'media_checksums': ['md5', 'sha256'],
|
||||||
|
'media_checksum_base_filename': '{release_short}-{variant}-{version}-{date}{type_suffix}.{respin}'
|
||||||
|
})
|
||||||
|
|
||||||
|
phase = ImageChecksumPhase(compose)
|
||||||
|
|
||||||
|
exists.return_value = True
|
||||||
|
cc.return_value = {'md5': 'cafebabe', 'sha256': 'deadbeef'}
|
||||||
|
|
||||||
|
phase.run()
|
||||||
|
|
||||||
|
dump.assert_has_calls(
|
||||||
|
[mock.call(self.topdir + '/compose/Client/i386/iso', 'md5',
|
||||||
|
{'image.iso': 'cafebabe'}, 'image.iso.MD5SUM'),
|
||||||
|
mock.call(self.topdir + '/compose/Client/i386/iso', 'sha256',
|
||||||
|
{'image.iso': 'deadbeef'}, 'image.iso.SHA256SUM'),
|
||||||
|
mock.call(self.topdir + '/compose/Client/i386/iso', 'md5', {'image.iso': 'cafebabe'},
|
||||||
|
'test-Client-1.0-20151203.t.0-MD5SUM'),
|
||||||
|
mock.call(self.topdir + '/compose/Client/i386/iso', 'sha256', {'image.iso': 'deadbeef'},
|
||||||
|
'test-Client-1.0-20151203.t.0-SHA256SUM')],
|
||||||
|
any_order=True
|
||||||
|
)
|
||||||
|
cc.assert_called_once_with(self.topdir + '/compose/Client/i386/iso/image.iso', ['md5', 'sha256'])
|
||||||
|
compose.image.add_checksum.assert_has_calls([mock.call(None, 'sha256', 'deadbeef'),
|
||||||
|
mock.call(None, 'md5', 'cafebabe')],
|
||||||
|
any_order=True)
|
||||||
|
|
||||||
|
|
||||||
class TestChecksums(unittest.TestCase):
|
class TestChecksums(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user