Skip to content

Commit 8fbaaba

Browse files
committed
Provider Migration: Replace BaseOperator to Task SDK for apache/http
Part of #52378 Credits to @bdsoha for #52506
1 parent 7494d0f commit 8fbaaba

4 files changed

Lines changed: 14 additions & 18 deletions

File tree

providers/http/src/airflow/providers/http/operators/http.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
from airflow.configuration import conf
2929
from airflow.exceptions import AirflowException
3030
from airflow.hooks.base import BaseHook
31-
from airflow.models import BaseOperator
3231
from airflow.providers.http.triggers.http import HttpTrigger, serialize_auth_type
32+
from airflow.providers.http.version_compat import BaseOperator
3333
from airflow.utils.helpers import merge_dicts
3434

3535
if TYPE_CHECKING:

providers/http/src/airflow/providers/http/sensors/http.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,7 @@
2525
from airflow.exceptions import AirflowException
2626
from airflow.providers.http.hooks.http import HttpHook
2727
from airflow.providers.http.triggers.http import HttpSensorTrigger
28-
from airflow.providers.http.version_compat import AIRFLOW_V_3_0_PLUS
29-
30-
if AIRFLOW_V_3_0_PLUS:
31-
from airflow.sdk import BaseSensorOperator
32-
else:
33-
from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
28+
from airflow.providers.http.version_compat import AIRFLOW_V_3_0_PLUS, BaseSensorOperator
3429

3530
if TYPE_CHECKING:
3631
try:

providers/http/src/airflow/providers/http/version_compat.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,11 @@ def get_base_airflow_version_tuple() -> tuple[int, int, int]:
3333

3434

3535
AIRFLOW_V_3_0_PLUS = get_base_airflow_version_tuple() >= (3, 0, 0)
36+
37+
if AIRFLOW_V_3_0_PLUS:
38+
from airflow.sdk import BaseOperator, BaseSensorOperator
39+
else:
40+
from airflow.models import BaseOperator # type: ignore[no-redef]
41+
from airflow.sensors.base import BaseSensorOperator # type: ignore[no-redef]
42+
43+
__all__ = ["AIRFLOW_V_3_0_PLUS", "BaseOperator", "BaseSensorOperator"]

providers/http/tests/unit/http/sensors/test_http.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -286,11 +286,6 @@ def mount(self, prefix, adapter):
286286

287287

288288
class TestHttpOpSensor:
289-
def setup_method(self):
290-
args = {"owner": "airflow", "start_date": DEFAULT_DATE_ISO}
291-
dag = DAG(TEST_DAG_ID, schedule=None, default_args=args)
292-
self.dag = dag
293-
294289
@mock.patch("airflow.providers.http.hooks.http.Session", FakeSession)
295290
def test_get(self):
296291
op = HttpOperator(
@@ -299,9 +294,8 @@ def test_get(self):
299294
endpoint="/search",
300295
data={"client": "ubuntu", "q": "airflow"},
301296
headers={},
302-
dag=self.dag,
303297
)
304-
op.run(start_date=DEFAULT_DATE, end_date=DEFAULT_DATE, ignore_ti_state=True)
298+
op.execute({})
305299

306300
@mock.patch("airflow.providers.http.hooks.http.Session", FakeSession)
307301
def test_get_response_check(self):
@@ -312,9 +306,8 @@ def test_get_response_check(self):
312306
data={"client": "ubuntu", "q": "airflow"},
313307
response_check=lambda response: ("apache/airflow" in response.text),
314308
headers={},
315-
dag=self.dag,
316309
)
317-
op.run(start_date=DEFAULT_DATE, end_date=DEFAULT_DATE, ignore_ti_state=True)
310+
op.execute({})
318311

319312
@pytest.mark.skipif(not AIRFLOW_V_3_0_PLUS, reason="Test only for Airflow 3.0+")
320313
@mock.patch("airflow.providers.http.hooks.http.Session", FakeSession)
@@ -328,13 +321,13 @@ def test_sensor(self, run_task):
328321
response_check=lambda response: f"apache/airflow/{DEFAULT_DATE:%Y-%m-%d}" in response.text,
329322
poke_interval=5,
330323
timeout=15,
331-
dag=self.dag,
332324
)
333325
run_task(sensor)
334326

335327
@pytest.mark.skipif(AIRFLOW_V_3_0_PLUS, reason="Test only for Airflow < 3.0")
336328
@mock.patch("airflow.providers.http.hooks.http.Session", FakeSession)
337329
def test_sensor_af2(self):
330+
dag = DAG(TEST_DAG_ID, schedule=None)
338331
sensor = HttpSensor(
339332
task_id="http_sensor_check",
340333
http_conn_id="http_default",
@@ -344,7 +337,7 @@ def test_sensor_af2(self):
344337
response_check=lambda response: f"apache/airflow/{DEFAULT_DATE:%Y-%m-%d}" in response.text,
345338
poke_interval=5,
346339
timeout=15,
347-
dag=self.dag,
340+
dag=dag,
348341
)
349342
sensor.run(start_date=DEFAULT_DATE, end_date=DEFAULT_DATE, ignore_ti_state=True)
350343

0 commit comments

Comments
 (0)