diff --git a/libpermian/plugins/compose/__init__.py b/libpermian/plugins/compose/__init__.py index 5f809ee..496e786 100644 --- a/libpermian/plugins/compose/__init__.py +++ b/libpermian/plugins/compose/__init__.py @@ -31,7 +31,7 @@ def __str__(self): @api.events.register_structure('compose') class ComposeStructure(BaseStructure): - id_regex = re.compile(r'(?P\w+)-(?P(?P\d+)(\.(?P\d+))?(\.(?P\d))?)((-updates)?(-(?P\w+)-\d)?-(?P\d+)(\.(?P.))?\.(?P\d+))?') + id_regex = re.compile(r'(?P\w+)(-(?P(?!\d)\w+))?-(?P(?P\d+)(\.(?P\d+))?(\.(?P\d))?)((-updates)?(-(?P\w+)-\d)?-(?P\d+)(\.(?P.))?\.(?P\d+))?') def __init__(self, settings, id, product=None, version=None, major=None, minor=None, qr=None, date=None, respin=None, location=None, location_http=None, compose_type=None, nightly=None, development=None, label=None, prerelease=None, tags=None, new_tag=None, layered=None, parent_product=None, parent_version=None, available_in=None, release_type=None): super().__init__(settings) diff --git a/libpermian/plugins/compose/test_compose.py b/libpermian/plugins/compose/test_compose.py index 9e69839..b9af0a3 100644 --- a/libpermian/plugins/compose/test_compose.py +++ b/libpermian/plugins/compose/test_compose.py @@ -84,6 +84,23 @@ def test_rhel_idonly(self): self.assertFalse(event.compose.layered) self.assertEqual(event.compose.location, 'http://example.com/here/RHEL-8.3.0-20200701.2') + def test_rhel_variant_idonly(self): + event = EventFactory.make(self.settings, CliFactory.parse('compose', ['RHEL-FULL-8.3.0-20200701.2'])[1]) + self.assertEqual(event.compose.id, 'RHEL-FULL-8.3.0-20200701.2') + self.assertEqual(event.compose.version, '8.3.0') + self.assertEqual(event.compose.major, '8') + self.assertEqual(event.compose.minor, '3') + self.assertEqual(event.compose.qr, '0') + self.assertEqual(event.compose.spin, '2') + self.assertEqual(event.compose.date, '20200701') + self.assertEqual(event.compose.product, 'RHEL') + self.assertIsNone(event.compose.parent_product) + self.assertIsNone(event.compose.parent_version) + self.assertFalse(event.compose.nightly) + self.assertTrue(event.compose.prerelease) + self.assertFalse(event.compose.layered) + self.assertEqual(event.compose.location, 'http://example.com/here/RHEL-FULL-8.3.0-20200701.2') + def test_supp_idonly(self): event = EventFactory.make(self.settings, CliFactory.parse('compose', ['Supp-9.2.1-RHEL-8-20200811.n.5'])[1]) self.assertEqual(event.compose.id, 'Supp-9.2.1-RHEL-8-20200811.n.5')