Skip to content

Commit cc8c268

Browse files
committed
Reduce startup overhead in lazy import tests
1 parent e2141d4 commit cc8c268

1 file changed

Lines changed: 21 additions & 17 deletions

File tree

‎airflow-core/tests/unit/api_fastapi/execution_api/test_in_process.py‎

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,32 +16,36 @@
1616
# under the License.
1717
from __future__ import annotations
1818

19+
import os
1920
import subprocess
2021
import sys
22+
from textwrap import dedent
2123

22-
import pytest
2324

24-
25-
@pytest.mark.parametrize(
26-
"create_instance",
27-
[
28-
"from airflow.api_fastapi.execution_api.in_process import InProcessExecutionAPI; "
29-
"api = InProcessExecutionAPI(); ",
30-
"from airflow.dag_processing.manager import DagFileProcessorManager; "
31-
"manager = DagFileProcessorManager(max_runs=1); ",
32-
],
33-
ids=["in_process_api", "dag_processor_manager"],
34-
)
35-
def test_construction_defers_execution_api_imports(create_instance):
25+
def test_construction_defers_execution_api_imports():
3626
result = subprocess.run(
3727
[
3828
sys.executable,
3929
"-c",
40-
"import sys; " + create_instance + "modules = {'svcs', 'cadwyn', 'fastapi', 'aiohttp', "
41-
"'airflow.api_fastapi.execution_api.app'}; "
42-
"loaded = modules.intersection(sys.modules); "
43-
"assert not loaded, f'{loaded} imported eagerly'",
30+
dedent("""
31+
import sys
32+
33+
modules = {'svcs', 'cadwyn', 'fastapi', 'aiohttp', 'airflow.api_fastapi.execution_api.app'}
34+
35+
from airflow.api_fastapi.execution_api.in_process import InProcessExecutionAPI
36+
37+
api = InProcessExecutionAPI()
38+
loaded = modules.intersection(sys.modules)
39+
assert not loaded, f'{loaded} imported eagerly by InProcessExecutionAPI'
40+
41+
from airflow.dag_processing.manager import DagFileProcessorManager
42+
43+
manager = DagFileProcessorManager(max_runs=1)
44+
loaded = modules.intersection(sys.modules)
45+
assert not loaded, f'{loaded} imported eagerly by DagFileProcessorManager'
46+
"""),
4447
],
48+
env={**os.environ, "_AIRFLOW__AS_LIBRARY": "1"},
4549
capture_output=True,
4650
text=True,
4751
check=False,

0 commit comments

Comments
 (0)