Merge "Fix user profile display"
This commit is contained in:
commit
632d57449b
|
@ -273,8 +273,14 @@ class Depends(object):
|
||||||
def profiles(self):
|
def profiles(self):
|
||||||
profiles = set()
|
profiles = set()
|
||||||
for rule in self._rules:
|
for rule in self._rules:
|
||||||
for _, selector in rule[1]:
|
# Partition rules, but keep only the user ones
|
||||||
profiles.add(selector)
|
_, 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)
|
return sorted(profiles)
|
||||||
|
|
||||||
def codenamebits(self, distro_id, codename):
|
def codenamebits(self, distro_id, codename):
|
||||||
|
|
|
@ -67,6 +67,11 @@ class TestDepends(TestCase):
|
||||||
depends = Depends("")
|
depends = Depends("")
|
||||||
self.assertEqual([], depends.profiles())
|
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):
|
def test_platform_profiles_succeeds(self):
|
||||||
with DistroFixture('Ubuntu'):
|
with DistroFixture('Ubuntu'):
|
||||||
depends = Depends("")
|
depends = Depends("")
|
||||||
|
|
Loading…
Reference in New Issue