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_role_definitions_empty_definition_file(self): loader = RBACDefinitionsLoader() file_path = os.path.join(get_fixtures_base_path(), 'rbac_invalid/roles/role_empty.yaml') file_paths = [file_path] loader._get_role_definitions_file_paths = mock.Mock() loader._get_role_definitions_file_paths.return_value = file_paths expected_msg = 'Role definition file .+? is empty and invalid' self.assertRaisesRegexp(ValueError, expected_msg, loader.load_role_definitions)
def test_load_role_definitions_disabled_role_definition(self): loader = RBACDefinitionsLoader() # Disabled role which means this method shouldn't include it in the result file_path = os.path.join(get_fixtures_base_path(), 'rbac/roles/role_disabled.yaml') file_paths = [file_path] loader._get_role_definitions_file_paths = mock.Mock() loader._get_role_definitions_file_paths.return_value = file_paths result = loader.load_role_definitions() self.assertItemsEqual(result, [])
def test_load_role_definitions_duplicate_role_definition(self): loader = RBACDefinitionsLoader() # Try to load all the roles from disk where two definitions refer to the same role file_path1 = os.path.join(get_fixtures_base_path(), 'rbac_invalid/roles/role_three1.yaml') file_path2 = os.path.join(get_fixtures_base_path(), 'rbac_invalid/roles/role_three2.yaml') file_paths = [file_path1, file_path2] loader._get_role_definitions_file_paths = mock.Mock() loader._get_role_definitions_file_paths.return_value = file_paths expected_msg = 'Duplicate definition file found for role "role_three_name_conflict"' self.assertRaisesRegexp(ValueError, expected_msg, loader.load_role_definitions)