From 1dbd0248d4ff9b8417b51d9692f8705022740e18 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Mon, 6 Nov 2017 16:13:49 +0100 Subject: [PATCH] Implement version.compose_id version generator Signed-off-by: Patrick Uiterwijk --- pungi/util.py | 7 +++++-- tests/test_util.py | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/pungi/util.py b/pungi/util.py index 0162e17b..0607b6cf 100644 --- a/pungi/util.py +++ b/pungi/util.py @@ -782,9 +782,12 @@ def version_generator(compose, gen): """ if gen == '!OSTREE_VERSION_FROM_LABEL_DATE_TYPE_RESPIN': return '%s.%s' % (compose.image_version, compose.image_release) - if gen == '!RELEASE_FROM_LABEL_DATE_TYPE_RESPIN': + elif gen == '!RELEASE_FROM_LABEL_DATE_TYPE_RESPIN': return compose.image_release - if gen and gen[0] == '!': + elif gen == '!RELEASE_FROM_VERSION_COMPOSE_ID': + return '%s.%s' % (compose.ci_base.release.version, + compose.ci_base.id) + elif gen and gen[0] == '!': raise RuntimeError("Unknown version generator '%s'" % gen) return gen diff --git a/tests/test_util.py b/tests/test_util.py index 05804ac2..32096767 100644 --- a/tests/test_util.py +++ b/tests/test_util.py @@ -601,6 +601,20 @@ class GetRepoFuncsTestCase(unittest.TestCase): class TestVersionGenerator(unittest.TestCase): + def setUp(self): + ci = mock.MagicMock() + ci.respin = 0 + ci.id = 'RHEL-8.0-20180101.0' + ci.release.version = '8' + ci.date = '20160101' + ci.type = 'nightly' + ci.type_suffix = '' + ci.label = 'RC-1.0' + ci.label_major_version = '1' + + self.compose = mock.MagicMock() + self.compose.ci_base = ci + def test_unknown_generator(self): compose = mock.Mock() with self.assertRaises(RuntimeError) as ctx: @@ -617,6 +631,10 @@ class TestVersionGenerator(unittest.TestCase): compose = mock.Mock() self.assertEqual(util.version_generator(compose, None), None) + def test_release_from_version_compose_id(self): + self.assertEqual(util.version_generator(self.compose, '!RELEASE_FROM_VERSION_COMPOSE_ID'), + '8.RHEL-8.0-20180101.0') + class TestTZOffset(unittest.TestCase): @mock.patch('time.daylight', new=False)