Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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, [])
Ejemplo n.º 6
0
    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)
Ejemplo n.º 8
0
    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)