Merge "Fix user profile display"

This commit is contained in:
Zuul 2018-08-07 13:03:32 +00:00 committed by Gerrit Code Review
commit 632d57449b
2 changed files with 13 additions and 2 deletions

View File

@ -273,8 +273,14 @@ class Depends(object):
def profiles(self):
profiles = set()
for rule in self._rules:
for _, selector in rule[1]:
profiles.add(selector)
# Partition rules, but keep only the user ones
_, user_profiles = self._partition(rule)
for profile in user_profiles:
# Flatten a series of AND conditionals in a user rule
if isinstance(profile, list):
profiles.update([rule[1] for rule in profile])
elif isinstance(profile, tuple):
profiles.add(profile[1])
return sorted(profiles)
def codenamebits(self, distro_id, codename):

View File

@ -67,6 +67,11 @@ class TestDepends(TestCase):
depends = Depends("")
self.assertEqual([], depends.profiles())
def test_3tuple(self):
depends = Depends(u"erlang [(infra rabbitmq hipe)]\n")
self.assertEqual(sorted([u'infra', u'rabbitmq', u'hipe']),
depends.profiles())
def test_platform_profiles_succeeds(self):
with DistroFixture('Ubuntu'):
depends = Depends("")