Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions devel-common/src/tests_common/test_utils/mock_security_manager.py

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,7 @@
from unittest import mock

from airflow.providers.common.compat.openlineage.facet import Dataset

from tests_common.test_utils.compat import ignore_provider_compatibility_error

with ignore_provider_compatibility_error("2.8.0", __file__):
from airflow.providers.common.io.operators.file_transfer import FileTransferOperator
from airflow.providers.common.io.operators.file_transfer import FileTransferOperator


def test_file_transfer_copy():
Expand Down
5 changes: 0 additions & 5 deletions providers/fab/docs/cli-ref.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,6 @@
FAB CLI Commands
================

.. note::
The CLI commands below are sourced from the FAB provider by Airflow 2.9.0+.
Previously, they were part of core Airflow, so if you are using Airflow below 2.9.0 please see
the core Airflow documentation for the list of CLI commands and parameters available.

.. argparse::
:module: airflow.providers.fab.auth_manager.fab_auth_manager
:func: get_parser
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@
# under the License.
from __future__ import annotations

from tests_common.test_utils.compat import ignore_provider_compatibility_error

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth import init_app
from airflow.providers.fab.auth_manager.api.auth.backend.kerberos_auth import init_app


class TestKerberosAuth:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,9 @@

from contextlib import contextmanager

from airflow.providers.fab.auth_manager.security_manager.override import EXISTING_ROLES
from airflow.providers.fab.www.api_connexion.exceptions import EXCEPTIONS_LINK_MAP

from tests_common.test_utils.compat import ignore_provider_compatibility_error

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.security_manager.override import EXISTING_ROLES


@contextmanager
def create_test_client(app, user_name, role_name, permissions):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@
import pytest
from sqlalchemy import select

from airflow.providers.fab.auth_manager.models import Role
from airflow.providers.fab.auth_manager.security_manager.override import EXISTING_ROLES
from airflow.providers.fab.www.api_connexion.exceptions import EXCEPTIONS_LINK_MAP
from airflow.providers.fab.www.security import permissions

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from unit.fab.auth_manager.api_endpoints.api_connexion_utils import (
assert_401,
create_role,
Expand All @@ -31,10 +32,6 @@
delete_user,
)

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.models import Role
from airflow.providers.fab.auth_manager.security_manager.override import EXISTING_ROLES

pytestmark = pytest.mark.db_test


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
from airflow.providers.fab.www.security import permissions
from airflow.utils.session import create_session

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from tests_common.test_utils.config import conf_vars
from unit.fab.auth_manager.api_endpoints.api_connexion_utils import (
assert_401,
Expand All @@ -40,9 +39,7 @@
from airflow.sdk import timezone


with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.models import User

from airflow.providers.fab.auth_manager.models import User

pytestmark = pytest.mark.db_test

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,11 @@
# under the License.
from __future__ import annotations

from tests_common.test_utils.compat import ignore_provider_compatibility_error

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.cli_commands.definition import (
ROLES_COMMANDS,
SYNC_PERM_COMMAND,
USERS_COMMANDS,
)
from airflow.providers.fab.auth_manager.cli_commands.definition import (
ROLES_COMMANDS,
SYNC_PERM_COMMAND,
USERS_COMMANDS,
)


class TestCliDefinition:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,11 @@
import pytest

from airflow.cli import cli_parser
from airflow.providers.fab.auth_manager.cli_commands import permissions_command
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from tests_common.test_utils.config import conf_vars

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.cli_commands import permissions_command
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder

pytestmark = pytest.mark.db_test


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,12 @@
import pytest

from airflow.cli import cli_parser
from airflow.providers.fab.auth_manager.cli_commands import role_command
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder
from airflow.providers.fab.www.security import permissions

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from tests_common.test_utils.config import conf_vars

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.cli_commands import role_command
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder

from airflow.providers.fab.www.security import permissions

pytestmark = pytest.mark.db_test


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,10 @@
import pytest

from airflow.cli import cli_parser
from airflow.providers.fab.auth_manager.cli_commands import sync_perm_command

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from tests_common.test_utils.config import conf_vars

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.cli_commands import sync_perm_command

pytestmark = pytest.mark.db_test


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,11 @@
import pytest

from airflow.cli import cli_parser
from airflow.providers.fab.auth_manager.cli_commands import user_command
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from tests_common.test_utils.config import conf_vars

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.cli_commands import user_command
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder

pytestmark = pytest.mark.db_test

TEST_USER1_EMAIL = "test-user1@example.com"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,12 @@
import airflow
from airflow.configuration import conf
from airflow.exceptions import AirflowConfigException
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder
from airflow.providers.fab.www.extensions.init_appbuilder import AirflowAppBuilder
from airflow.providers.fab.www.session import AirflowDatabaseSessionInterface

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from tests_common.test_utils.config import conf_vars

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.cli_commands.utils import get_application_builder


@pytest.fixture
def flask_app():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,7 @@
# under the License.
from __future__ import annotations

from tests_common.test_utils.compat import ignore_provider_compatibility_error

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.models.anonymous_user import AnonymousUser
from airflow.providers.fab.auth_manager.models.anonymous_user import AnonymousUser


class TestAnonymousUser:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,15 @@
import pytest
from sqlalchemy import select

from airflow.providers.fab.auth_manager.models import User
from airflow.providers.fab.auth_manager.schemas.user_schema import (
user_collection_item_schema,
user_schema,
)
from airflow.utils import timezone

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from unit.fab.auth_manager.api_endpoints.api_connexion_utils import create_role, delete_role

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.models import User
from airflow.providers.fab.auth_manager.schemas.user_schema import (
user_collection_item_schema,
user_schema,
)


TEST_EMAIL = "test@example.org"

DEFAULT_TIME = "2021-01-09T13:59:56.336000+00:00"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@
# under the License.
from __future__ import annotations

from tests_common.test_utils.compat import ignore_provider_compatibility_error

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.security_manager.constants import EXISTING_ROLES
from airflow.providers.fab.auth_manager.security_manager.constants import EXISTING_ROLES


class TestFbSecurityManagerConstants:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,7 @@

import pytest

from tests_common.test_utils.compat import ignore_provider_compatibility_error

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.security_manager.override import FabAirflowSecurityManagerOverride
from airflow.providers.fab.auth_manager.security_manager.override import FabAirflowSecurityManagerOverride


class EmptySecurityManager(FabAirflowSecurityManagerOverride):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,13 @@
DagDetails,
)

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from tests_common.test_utils.dag import sync_dag_to_db

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.fab_auth_manager import FabAuthManager
from airflow.providers.fab.auth_manager.security_manager.override import FabAirflowSecurityManagerOverride

from airflow.providers.common.compat.security.permissions import (
RESOURCE_ASSET,
RESOURCE_ASSET_ALIAS,
RESOURCE_BACKFILL,
)
from airflow.providers.fab.auth_manager.fab_auth_manager import FabAuthManager
from airflow.providers.fab.auth_manager.security_manager.override import FabAirflowSecurityManagerOverride
from airflow.providers.fab.www.security.permissions import (
ACTION_CAN_ACCESS_MENU,
ACTION_CAN_CREATE,
Expand All @@ -75,6 +70,7 @@
RESOURCE_WEBSITE,
)

from tests_common.test_utils.dag import sync_dag_to_db
from tests_common.test_utils.version_compat import AIRFLOW_V_3_1_PLUS

if AIRFLOW_V_3_1_PLUS:
Expand Down
11 changes: 4 additions & 7 deletions providers/fab/tests/unit/fab/auth_manager/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,10 @@

from sqlalchemy import Column, MetaData, String, Table

from tests_common.test_utils.compat import ignore_provider_compatibility_error

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.models import (
add_index_on_ab_register_user_username_postgres,
add_index_on_ab_user_username_postgres,
)
from airflow.providers.fab.auth_manager.models import (
add_index_on_ab_register_user_username_postgres,
add_index_on_ab_user_username_postgres,
)

_mock_conn = mock.MagicMock()
_mock_conn.dialect = mock.MagicMock()
Expand Down
27 changes: 15 additions & 12 deletions providers/fab/tests/unit/fab/auth_manager/test_security.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,28 +30,23 @@
from flask_appbuilder.views import BaseView, ModelView
from sqlalchemy import Column, Date, Float, Integer, String, delete, func, select

from airflow.api_fastapi.app import get_auth_manager
from airflow.exceptions import AirflowException
from airflow.models import DagModel
from airflow.models.dag import DAG
from airflow.models.dagbundle import DagBundleModel
from airflow.providers.fab.www.utils import CustomSQLAInterface

from tests_common.test_utils.compat import ignore_provider_compatibility_error
from tests_common.test_utils.config import conf_vars

with ignore_provider_compatibility_error("2.9.0+", __file__):
from airflow.providers.fab.auth_manager.fab_auth_manager import FabAuthManager
from airflow.providers.fab.auth_manager.models import assoc_permission_role
from airflow.providers.fab.auth_manager.models.anonymous_user import AnonymousUser

from airflow.api_fastapi.app import get_auth_manager
from airflow.providers.fab.auth_manager.fab_auth_manager import FabAuthManager
from airflow.providers.fab.auth_manager.models import assoc_permission_role
from airflow.providers.fab.auth_manager.models.anonymous_user import AnonymousUser
from airflow.providers.fab.auth_manager.security_manager.override import FabAirflowSecurityManagerOverride
from airflow.providers.fab.www import app as application
from airflow.providers.fab.www.security import permissions
from airflow.providers.fab.www.security.permissions import ACTION_CAN_READ
from airflow.providers.fab.www.utils import CustomSQLAInterface

from tests_common.test_utils.asserts import assert_queries_count
from tests_common.test_utils.config import conf_vars
from tests_common.test_utils.db import clear_db_dag_bundles, clear_db_dags, clear_db_runs
from tests_common.test_utils.mock_security_manager import MockSecurityManager
from tests_common.test_utils.permissions import _resource_name
from tests_common.test_utils.version_compat import AIRFLOW_V_3_1_PLUS
from unit.fab.auth_manager.api_endpoints.api_connexion_utils import (
Expand Down Expand Up @@ -86,6 +81,14 @@
log = logging.getLogger(__name__)


class MockSecurityManager(FabAirflowSecurityManagerOverride):
"""Mock Security Manager for testing purposes."""

VIEWER_VMS = {
"Airflow",
}


class SomeModel(Model):
id = Column(Integer, primary_key=True)
field_string = Column(String(50), unique=True, nullable=False)
Expand Down