From 1211ab431b63234ca67d101aa92ad20e7614e1b6 Mon Sep 17 00:00:00 2001 From: kakwa Date: Sun, 17 May 2015 01:22:53 +0200 Subject: [PATCH] add methods for class Roles + unit tests * adding get_allroles (list all available roles) * adding get_display_name (get display name of a role) * add various unit tests --- ldapcherry/roles.py | 10 ++++++++++ misc/debug_roles.py | 4 ++++ tests/test_Roles.py | 31 +++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/ldapcherry/roles.py b/ldapcherry/roles.py index 81e6c26..eee44db 100644 --- a/ldapcherry/roles.py +++ b/ldapcherry/roles.py @@ -198,6 +198,16 @@ class Roles: ret['unusedgroups'] = unusedgroups return ret + def get_allroles(self): + """get the list of roles""" + return self.roles_raw.keys() + + def get_display_name(self, role): + """get the display name of a role""" + if not role in self.roles_raw: + raise MissingRole(role) + return self.roles_raw[role]['display_name'] + def get_groups(self, role): """get the list of groups from role""" if not role in self.roles_raw: diff --git a/misc/debug_roles.py b/misc/debug_roles.py index b5ab2a1..33442ee 100644 --- a/misc/debug_roles.py +++ b/misc/debug_roles.py @@ -37,3 +37,7 @@ groups = { print inv.get_roles(groups) + +print inv.get_allroles() + +print inv.get_backends() diff --git a/tests/test_Roles.py b/tests/test_Roles.py index f469ffb..e59f385 100644 --- a/tests/test_Roles.py +++ b/tests/test_Roles.py @@ -76,6 +76,37 @@ class TestError(object): else: raise AssertionError("expected an exception") + def testGetDisplayNameMissingRole(self): + inv = Roles('./tests/cfg/roles.yml') + try: + res = inv.get_display_name('notarole') + except MissingRole: + return + else: + raise AssertionError("expected an exception") + + def testGetDisplayName(self): + inv = Roles('./tests/cfg/roles.yml') + res = inv.get_display_name('users') + expected = 'Simple Users' + assert res == expected + + def testGetAllRoles(self): + inv = Roles('./tests/cfg/roles.yml') + res = inv.get_allroles() + expected = ['developpers', 'admin-lv3', 'admin-lv2', 'users'] + assert res == expected + + def testGetAllRoles(self): + inv = Roles('./tests/cfg/roles.yml') + res = inv.get_backends() + expected = Set(['ad', 'ldap']) + assert res == expected + + def testDumpNested(self): + inv = Roles('./tests/cfg/roles.yml') + inv.dump_nest() + def testAdminRoles(self): inv = Roles('./tests/cfg/roles.yml') res = inv.get_admin_roles()