This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-1-test by this push:
     new 735b89bc3cb [v3-1-test] Disable some integration tests for ARM 
(#57259) (#57261)
735b89bc3cb is described below

commit 735b89bc3cbb1fc056aa1062366e261fca8c0563
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Oct 25 22:49:22 2025 +0200

    [v3-1-test] Disable some integration tests for ARM (#57259) (#57261)
    
    Some of the integration tests should not be run for ARM because
    they do not have multi-platform images. This PR adds the list of
    those tests that should be removed from ARM runs.
    (cherry picked from commit d75e91340d38df76018285d62ab3c1d648070853)
    
    Co-authored-by: Jarek Potiuk <[email protected]>
---
 dev/breeze/src/airflow_breeze/global_constants.py  |   8 +
 .../src/airflow_breeze/utils/selective_checks.py   |  12 +-
 dev/breeze/tests/test_selective_checks.py          | 204 +++++++++++++++++++++
 3 files changed, 222 insertions(+), 2 deletions(-)

diff --git a/dev/breeze/src/airflow_breeze/global_constants.py 
b/dev/breeze/src/airflow_breeze/global_constants.py
index 1f2b6e42728..220c252c0ad 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -89,6 +89,14 @@ TESTABLE_PROVIDERS_INTEGRATIONS = [
 DISABLE_TESTABLE_INTEGRATIONS_FROM_CI = [
     "mssql",
 ]
+DISABLE_TESTABLE_INTEGRATIONS_FROM_ARM = [
+    "kerberos",
+    "drill",
+    "tinkerpop",
+    "pinot",
+    "trino",
+    "ydb",
+]
 KEYCLOAK_INTEGRATION = "keycloak"
 STATSD_INTEGRATION = "statsd"
 OTEL_INTEGRATION = "otel"
diff --git a/dev/breeze/src/airflow_breeze/utils/selective_checks.py 
b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
index f880e8e8c14..3167c99d0e3 100644
--- a/dev/breeze/src/airflow_breeze/utils/selective_checks.py
+++ b/dev/breeze/src/airflow_breeze/utils/selective_checks.py
@@ -41,6 +41,7 @@ from airflow_breeze.global_constants import (
     DEFAULT_MYSQL_VERSION,
     DEFAULT_POSTGRES_VERSION,
     DEFAULT_PYTHON_MAJOR_MINOR_VERSION,
+    DISABLE_TESTABLE_INTEGRATIONS_FROM_ARM,
     DISABLE_TESTABLE_INTEGRATIONS_FROM_CI,
     HELM_VERSION,
     KIND_VERSION,
@@ -1389,6 +1390,13 @@ class SelectiveChecks:
         )  # ^ sort by Python minor version
         return json.dumps(sorted_providers_to_exclude)
 
+    def _is_disabled_integration(self, integration: str) -> bool:
+        return (
+            integration in DISABLE_TESTABLE_INTEGRATIONS_FROM_CI
+            or integration in DISABLE_TESTABLE_INTEGRATIONS_FROM_ARM
+            and self.runner_type in PUBLIC_ARM_RUNNERS
+        )
+
     @cached_property
     def testable_core_integrations(self) -> list[str]:
         if not self.run_unit_tests:
@@ -1396,7 +1404,7 @@ class SelectiveChecks:
         return [
             integration
             for integration in TESTABLE_CORE_INTEGRATIONS
-            if integration not in DISABLE_TESTABLE_INTEGRATIONS_FROM_CI
+            if not self._is_disabled_integration(integration)
         ]
 
     @cached_property
@@ -1406,7 +1414,7 @@ class SelectiveChecks:
         return [
             integration
             for integration in TESTABLE_PROVIDERS_INTEGRATIONS
-            if integration not in DISABLE_TESTABLE_INTEGRATIONS_FROM_CI
+            if not self._is_disabled_integration(integration)
         ]
 
     @cached_property
diff --git a/dev/breeze/tests/test_selective_checks.py 
b/dev/breeze/tests/test_selective_checks.py
index a44d2548e84..1dd330ba80b 100644
--- a/dev/breeze/tests/test_selective_checks.py
+++ b/dev/breeze/tests/test_selective_checks.py
@@ -2525,3 +2525,207 @@ def test_runner_type_schedule(mock_get):
     result = selective_checks.runner_type
 
     assert result == '["ubuntu-22.04-arm"]'
+
+
[email protected](
+    "integration, runner_type, expected_result",
+    [
+        # Test integrations disabled for all CI environments
+        pytest.param(
+            "elasticsearch",
+            PUBLIC_AMD_RUNNERS,
+            True,
+            id="elasticsearch_disabled_on_amd",
+        ),
+        pytest.param(
+            "mssql",
+            PUBLIC_AMD_RUNNERS,
+            True,
+            id="mssql_disabled_on_amd",
+        ),
+        pytest.param(
+            "localstack",
+            '["ubuntu-22.04-arm"]',
+            True,
+            id="localstack_disabled_on_arm",
+        ),
+        # Test integrations disabled only for ARM runners
+        pytest.param(
+            "kerberos",
+            '["ubuntu-22.04-arm"]',
+            True,
+            id="kerberos_disabled_on_arm",
+        ),
+        pytest.param(
+            "drill",
+            '["ubuntu-22.04-arm"]',
+            True,
+            id="drill_disabled_on_arm",
+        ),
+        pytest.param(
+            "tinkerpop",
+            '["ubuntu-22.04-arm"]',
+            True,
+            id="tinkerpop_disabled_on_arm",
+        ),
+        pytest.param(
+            "pinot",
+            '["ubuntu-22.04-arm"]',
+            True,
+            id="pinot_disabled_on_arm",
+        ),
+        pytest.param(
+            "trino",
+            '["ubuntu-22.04-arm"]',
+            True,
+            id="trino_disabled_on_arm",
+        ),
+        pytest.param(
+            "ydb",
+            '["ubuntu-22.04-arm"]',
+            True,
+            id="ydb_disabled_on_arm",
+        ),
+        # Test integrations that are NOT disabled on AMD runners
+        pytest.param(
+            "kerberos",
+            PUBLIC_AMD_RUNNERS,
+            False,
+            id="kerberos_enabled_on_amd",
+        ),
+        pytest.param(
+            "drill",
+            PUBLIC_AMD_RUNNERS,
+            False,
+            id="drill_enabled_on_amd",
+        ),
+        pytest.param(
+            "tinkerpop",
+            PUBLIC_AMD_RUNNERS,
+            False,
+            id="tinkerpop_enabled_on_amd",
+        ),
+        # Test an integration that is not in any disabled list
+        pytest.param(
+            "postgres",
+            PUBLIC_AMD_RUNNERS,
+            False,
+            id="postgres_enabled_on_amd",
+        ),
+        pytest.param(
+            "postgres",
+            '["ubuntu-22.04-arm"]',
+            False,
+            id="postgres_enabled_on_arm",
+        ),
+        pytest.param(
+            "redis",
+            PUBLIC_AMD_RUNNERS,
+            False,
+            id="redis_enabled_on_amd",
+        ),
+        pytest.param(
+            "redis",
+            '["ubuntu-22.04-arm"]',
+            False,
+            id="redis_enabled_on_arm",
+        ),
+    ],
+)
+def test_is_disabled_integration(integration: str, runner_type: str, 
expected_result: bool):
+    """Test that _is_disabled_integration correctly identifies disabled 
integrations."""
+    selective_checks = SelectiveChecks(
+        files=(),
+        github_event=GithubEvents.PULL_REQUEST,
+        github_repository="apache/airflow",
+        github_context_dict={},
+    )
+
+    # Mock the runner_type property
+    with patch.object(
+        SelectiveChecks, "runner_type", new_callable=lambda: property(lambda 
self: runner_type)
+    ):
+        result = selective_checks._is_disabled_integration(integration)
+        assert result == expected_result
+
+
+def test_testable_core_integrations_excludes_disabled():
+    """Test that testable_core_integrations excludes disabled integrations."""
+    with patch(
+        "airflow_breeze.utils.selective_checks.TESTABLE_CORE_INTEGRATIONS",
+        ["postgres", "elasticsearch", "kerberos"],
+    ):
+        # Test with AMD runner - should exclude elasticsearch (disabled for 
all CI)
+        selective_checks_amd = SelectiveChecks(
+            files=("airflow-core/tests/test_example.py",),
+            commit_ref=NEUTRAL_COMMIT,
+            github_event=GithubEvents.PULL_REQUEST,
+        )
+        with patch.object(
+            SelectiveChecks, "runner_type", new_callable=lambda: 
property(lambda self: PUBLIC_AMD_RUNNERS)
+        ):
+            result = selective_checks_amd.testable_core_integrations
+            assert "postgres" in result
+            assert "kerberos" in result
+            assert "elasticsearch" not in result
+
+
+def test_testable_core_integrations_excludes_arm_disabled_on_arm():
+    """Test that testable_core_integrations excludes ARM-disabled integrations 
on ARM runners."""
+    with patch(
+        "airflow_breeze.utils.selective_checks.TESTABLE_CORE_INTEGRATIONS", 
["postgres", "kerberos", "drill"]
+    ):
+        selective_checks_arm = SelectiveChecks(
+            files=("airflow-core/tests/test_example.py",),
+            commit_ref=NEUTRAL_COMMIT,
+            github_event=GithubEvents.SCHEDULE,
+            github_context_dict={"ref_name": "main"},
+        )
+        with patch.object(
+            SelectiveChecks, "runner_type", new_callable=lambda: 
property(lambda self: '["ubuntu-22.04-arm"]')
+        ):
+            result = selective_checks_arm.testable_core_integrations
+            assert "postgres" in result
+            assert "kerberos" not in result
+            assert "drill" not in result
+
+
+def test_testable_providers_integrations_excludes_disabled():
+    """Test that testable_providers_integrations excludes disabled 
integrations."""
+    with patch(
+        
"airflow_breeze.utils.selective_checks.TESTABLE_PROVIDERS_INTEGRATIONS",
+        ["postgres", "mssql", "trino"],
+    ):
+        # Test with AMD runner - should exclude mssql (disabled for all CI)
+        selective_checks_amd = SelectiveChecks(
+            files=("providers/tests/test_example.py",),
+            commit_ref=NEUTRAL_COMMIT,
+            github_event=GithubEvents.PULL_REQUEST,
+        )
+        with patch.object(
+            SelectiveChecks, "runner_type", new_callable=lambda: 
property(lambda self: PUBLIC_AMD_RUNNERS)
+        ):
+            result = selective_checks_amd.testable_providers_integrations
+            assert "postgres" in result
+            assert "trino" in result
+            assert "mssql" not in result
+
+
+def test_testable_providers_integrations_excludes_arm_disabled_on_arm():
+    """Test that testable_providers_integrations excludes ARM-disabled 
integrations on ARM runners."""
+    with patch(
+        
"airflow_breeze.utils.selective_checks.TESTABLE_PROVIDERS_INTEGRATIONS", 
["postgres", "trino", "ydb"]
+    ):
+        selective_checks_arm = SelectiveChecks(
+            files=("providers/tests/test_example.py",),
+            commit_ref=NEUTRAL_COMMIT,
+            github_event=GithubEvents.SCHEDULE,
+            github_context_dict={"ref_name": "main"},
+        )
+        with patch.object(
+            SelectiveChecks, "runner_type", new_callable=lambda: 
property(lambda self: '["ubuntu-22.04-arm"]')
+        ):
+            result = selective_checks_arm.testable_providers_integrations
+            assert "postgres" in result
+            assert "trino" not in result
+            assert "ydb" not in result

Reply via email to