Ordering processing for volume ID substitutions
Related: https://pagure.io/pungi/issue/840 Signed-off-by: Ondrej Nosek <onosek@redhat.com>
This commit is contained in:
parent
7ee920a085
commit
caed78e11a
@ -322,7 +322,10 @@ def get_variant_data(conf, var_name, variant, keys=None):
|
|||||||
|
|
||||||
|
|
||||||
def _apply_substitutions(compose, volid):
|
def _apply_substitutions(compose, volid):
|
||||||
for k, v in compose.conf['volume_id_substitutions'].items():
|
substitutions = compose.conf['volume_id_substitutions'].items()
|
||||||
|
# processing should start with the longest pattern, otherwise, we could
|
||||||
|
# unexpectedly replace a substring of that longest pattern
|
||||||
|
for k, v in sorted(substitutions, reverse=True):
|
||||||
volid = volid.replace(k, v)
|
volid = volid.replace(k, v)
|
||||||
return volid
|
return volid
|
||||||
|
|
||||||
|
@ -222,6 +222,27 @@ class TestVolumeIdGenerator(unittest.TestCase):
|
|||||||
self.assertIn('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', str(ctx.exception))
|
self.assertIn('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', str(ctx.exception))
|
||||||
self.assertIn('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', str(ctx.exception))
|
self.assertIn('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', str(ctx.exception))
|
||||||
|
|
||||||
|
@mock.patch('pungi.compose.ComposeInfo')
|
||||||
|
def test_apply_substitutions(self, ci):
|
||||||
|
all_keys = [
|
||||||
|
('Fedora-WorkstationOstree-ostree-x86_64-rawhide', 'Fedora-WS-ostree-x86_64-rawhide'),
|
||||||
|
('Fedora-WorkstationOstree-ostree-x86_64-Rawhide', 'Fedora-WS-ostree-x86_64-rawh'),
|
||||||
|
('x86_64-compose_id-20160107', 'x86_64-compose_id-20160107'),
|
||||||
|
('x86_64-compose_id-20160107-Alpha', 'x86_64-compose_id-20160107-A'),
|
||||||
|
]
|
||||||
|
for volid, expected in all_keys:
|
||||||
|
conf = {
|
||||||
|
'volume_id_substitutions': {
|
||||||
|
'Rawhide': 'rawh',
|
||||||
|
'WorkstationOstree': 'WS',
|
||||||
|
'Workstation': 'WS',
|
||||||
|
'Alpha': 'A',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
c = compose.Compose(conf, self.tmp_dir)
|
||||||
|
transformed_volid = util._apply_substitutions(c, volid)
|
||||||
|
self.assertEqual(transformed_volid, expected)
|
||||||
|
|
||||||
|
|
||||||
class TestFindOldCompose(unittest.TestCase):
|
class TestFindOldCompose(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user