def test_known_groups_when_multiple_provider(self): provider = CombinedGroupProvider( PreconfiguredGroupProvider({'group1': ['@lazy1', 'user1']}), PreconfiguredGroupProvider({'group2': ['userX', 'user2']}), PreconfiguredGroupProvider({'group3': ['user3']}), PreconfiguredGroupProvider({'group4': ['@lazy4', 'user4']})) self.assertCountEqual(provider.get_groups('userX', ['lazy1', 'lazy4']), ['group1', 'group2', 'group4'])
def test_multiple_providers(self): provider = CombinedGroupProvider( PreconfiguredGroupProvider({'group1': ['user1', 'user2']}), PreconfiguredGroupProvider({'group2': ['user3', 'user4']}), PreconfiguredGroupProvider({'group3': ['user2', 'user5']})) self.assertCountEqual(provider.get_groups('user2'), ['group1', 'group3'])
def test_known_group_when_multiple_parents(self): provider = PreconfiguredGroupProvider( {'group1': ['@lazy1', 'user1'], 'group2': ['@lazy1', '@lazy2', 'user2'], 'group3': ['@lazy3', 'user3']}) actual_groups = provider.get_groups('userX', known_groups=['lazy1']) self.assertCountEqual(actual_groups, ['group1', 'group2'])
def test_two_users_in_different_groups(self): provider = PreconfiguredGroupProvider({ 'group1': ['user1'], 'group2': ['user2'] }) self.assertCountEqual(provider.get_groups('user1'), ['group1']) self.assertCountEqual(provider.get_groups('user2'), ['group2'])
def test_user_in_recursive_groups_when_cyclic(self): provider = PreconfiguredGroupProvider({ 'group1': ['@group2'], 'group2': ['@group1', 'user1'] }) self.assertCountEqual(provider.get_groups('user1'), ['group1', 'group2'])
def test_user_in_multiple_groups(self): provider = PreconfiguredGroupProvider({ 'group1': ['user1'], 'group2': ['user1'], 'group3': ['user1'] }) self.assertCountEqual(provider.get_groups('user1'), ['group1', 'group2', 'group3'])
def test_known_group_when_exists_and_multiple_and_mixed(self): provider = PreconfiguredGroupProvider( {'group1': ['@lazy1', 'user2'], 'group2': ['@lazy2', 'user3'], 'group3': ['@lazy3', 'user1'], 'group4': ['@lazy4', 'user4']}) actual_groups = provider.get_groups('user1', known_groups=['lazy2', 'lazy4']) self.assertCountEqual(actual_groups, ['group2', 'group3', 'group4'])
def assertAllowed(self, user, allowed_users, expected_allowed, groups=None): group_provider = PreconfiguredGroupProvider(groups) if groups else EmptyGroupProvider() authorizer = Authorizer(allowed_users, [], [], group_provider) allowed = authorizer.is_allowed_in_app(user) if allowed != expected_allowed: self.fail('Expected ' + user + ' to be allowed=' + str(expected_allowed) + ' for ' + str(allowed_users) + ' but was ' + str(allowed))
def assert_has_access(self, user, admin_users, history_access_users, expected_allowed, groups=None): group_provider = PreconfiguredGroupProvider(groups) if groups else EmptyGroupProvider() authorizer = Authorizer([], admin_users, history_access_users, group_provider) has_access = authorizer.has_full_history_access(user) if has_access != expected_allowed: self.fail('Expected ' + user + ' to has_access=' + str(expected_allowed) + ' for ' + str(history_access_users) + ' but was ' + str(has_access))
def test_user_without_groups(self): provider = PreconfiguredGroupProvider({'group1': ['user1']}) self.assertCountEqual(provider.get_groups('user2'), [])
def test_user_without_groups(self): provider = PreconfiguredGroupProvider({'group1': ['user1']}) self.assertCountEqual(provider.get_groups('user2'), [])
def test_single_user_in_single_group(self): provider = PreconfiguredGroupProvider({'group1': ['user1']}) self.assertCountEqual(provider.get_groups('user1'), ['group1'])
def test_known_groups_when_single_provider(self): provider = CombinedGroupProvider( PreconfiguredGroupProvider({'group1': ['user1', '@lazy1']})) self.assertCountEqual(provider.get_groups('user2', ['lazy1']), ['group1'])
def test_user_in_multiple_groups(self): provider = PreconfiguredGroupProvider({'group1': ['user1'], 'group2': ['user1'], 'group3': ['user1']}) self.assertCountEqual(provider.get_groups('user1'), ['group1', 'group2', 'group3'])
def test_single_provider(self): provider = CombinedGroupProvider( PreconfiguredGroupProvider({'group1': ['user1', 'user2']})) self.assertCountEqual(provider.get_groups('user1'), ['group1'])
def test_known_group_when_username_starts_with_at(self): provider = PreconfiguredGroupProvider({'group1': ['@group2', 'user2']}) self.assertCountEqual(provider.get_groups('@group2'), [])
def test_known_group_when_not_exists(self): provider = PreconfiguredGroupProvider({'group1': ['@group2', 'user2']}) self.assertCountEqual( provider.get_groups('user1', known_groups=['group3']), [])
def test_two_users_in_different_groups(self): provider = PreconfiguredGroupProvider( {'group1': ['user1'], 'group2': ['user2']}) self.assertCountEqual(provider.get_groups('user1'), ['group1']) self.assertCountEqual(provider.get_groups('user2'), ['group2'])
def test_empty_groups_config(self): provider = PreconfiguredGroupProvider({}) self.assertCountEqual(provider.get_groups('user1'), [])
def test_empty_groups_config(self): provider = PreconfiguredGroupProvider({}) self.assertCountEqual(provider.get_groups('user1'), [])
def test_user_in_recursive_group_when_3_levels(self): provider = PreconfiguredGroupProvider({'group1': ['@group2'], 'group2': ['@group3'], 'group3': ['user1']}) self.assertCountEqual(provider.get_groups('user1'), ['group1', 'group2', 'group3'])
def test_2_users_in_recursive_groups_when_cyclic(self): provider = PreconfiguredGroupProvider({'group1': ['@group2', 'user2'], 'group2': ['@group1', 'user1']}) self.assertCountEqual(provider.get_groups('user1'), ['group1', 'group2']) self.assertCountEqual(provider.get_groups('user2'), ['group1', 'group2'])
def test_single_user_in_single_group_ignore_case(self): provider = PreconfiguredGroupProvider({'group1': ['USER1']}) self.assertCountEqual(provider.get_groups('User1'), ['group1'])
def test_single_user_in_single_group(self): provider = PreconfiguredGroupProvider({'group1': ['user1']}) self.assertCountEqual(provider.get_groups('user1'), ['group1'])