def test_file_paths_sorting(self, mock_glob): mock_glob.return_value = [ '/tmp/bar/d.yaml', '/tmp/bar/c.yaml', '/tmp/foo/a.yaml', '/tmp/a/f.yaml' ] expected_result = [ '/tmp/foo/a.yaml', '/tmp/bar/c.yaml', '/tmp/bar/d.yaml', '/tmp/a/f.yaml' ] loader = RBACDefinitionsLoader() file_paths = loader._get_role_definitions_file_paths() self.assertEqual(file_paths, expected_result) file_paths = loader._get_role_assiginments_file_paths() self.assertEqual(file_paths, expected_result) file_paths = loader._get_group_to_role_maps_file_paths() self.assertEqual(file_paths, expected_result)
def test_load_user_role_assignments_empty_definition_file(self): loader = RBACDefinitionsLoader() file_path = os.path.join(get_fixtures_base_path(), 'rbac_invalid/assignments/user_empty.yaml') file_paths = [file_path] loader._get_role_assiginments_file_paths = mock.Mock() loader._get_role_assiginments_file_paths.return_value = file_paths expected_msg = 'Role assignment file .+? is empty and invalid' self.assertRaisesRegexp(ValueError, expected_msg, loader.load_user_role_assignments)
def test_load_user_role_assignments_disabled_assignment(self): loader = RBACDefinitionsLoader() # Disabled role assignment which means this method shouldn't include it in the result file_path = os.path.join(get_fixtures_base_path(), 'rbac/assignments/user_disabled.yaml') file_paths = [file_path] loader._get_role_assiginments_file_paths = mock.Mock() loader._get_role_assiginments_file_paths.return_value = file_paths result = loader.load_user_role_assignments() self.assertItemsEqual(result, [])
def test_load_user_role_assignments_empty_definition_file(self): loader = RBACDefinitionsLoader() file_path = os.path.join(get_fixtures_base_path(), 'rbac_invalid/assignments/user_empty.yaml') file_paths = [file_path] loader._get_role_assiginments_file_paths = mock.Mock() loader._get_role_assiginments_file_paths.return_value = file_paths expected_msg = 'Role assignment file .+? is empty and invalid' self.assertRaisesRegexp(ValueError, expected_msg, loader.load_user_role_assignments)
def test_load_user_role_assignments_disabled_assignment(self): loader = RBACDefinitionsLoader() # Disabled role assignment which means this method shouldn't include it in the result file_path = os.path.join(get_fixtures_base_path(), 'rbac/assignments/user_disabled.yaml') file_paths = [file_path] loader._get_role_assiginments_file_paths = mock.Mock() loader._get_role_assiginments_file_paths.return_value = file_paths result = loader.load_user_role_assignments() self.assertItemsEqual(result, [])
def test_load_user_role_assignments_duplicate_user_definition(self): loader = RBACDefinitionsLoader() # Try to load all the user role assignments from disk where two definitions refer to the # same user file_path1 = os.path.join(get_fixtures_base_path(), "rbac_invalid/assignments/user_foo1.yaml") file_path2 = os.path.join(get_fixtures_base_path(), "rbac_invalid/assignments/user_foo2.yaml") file_paths = [file_path1, file_path2] loader._get_role_assiginments_file_paths = mock.Mock() loader._get_role_assiginments_file_paths.return_value = file_paths expected_msg = 'Duplicate definition file found for user "userfoo"' self.assertRaisesRegexp(ValueError, expected_msg, loader.load_user_role_assignments)
def test_load_user_role_assignments_duplicate_user_definition(self): loader = RBACDefinitionsLoader() # Try to load all the user role assignments from disk where two definitions refer to the # same user file_path1 = os.path.join(get_fixtures_base_path(), 'rbac_invalid/assignments/user_foo1.yaml') file_path2 = os.path.join(get_fixtures_base_path(), 'rbac_invalid/assignments/user_foo2.yaml') file_paths = [file_path1, file_path2] loader._get_role_assiginments_file_paths = mock.Mock() loader._get_role_assiginments_file_paths.return_value = file_paths expected_msg = 'Duplicate definition file found for user "userfoo"' self.assertRaisesRegexp(ValueError, expected_msg, loader.load_user_role_assignments)
def test_file_paths_sorting(self, mock_glob): mock_glob.return_value = [ '/tmp/bar/d.yaml', '/tmp/bar/c.yaml', '/tmp/foo/a.yaml', '/tmp/a/f.yaml' ] expected_result = [ '/tmp/foo/a.yaml', '/tmp/bar/c.yaml', '/tmp/bar/d.yaml', '/tmp/a/f.yaml' ] loader = RBACDefinitionsLoader() file_paths = loader._get_role_definitions_file_paths() self.assertEqual(file_paths, expected_result) file_paths = loader._get_role_assiginments_file_paths() self.assertEqual(file_paths, expected_result) file_paths = loader._get_group_to_role_maps_file_paths() self.assertEqual(file_paths, expected_result)