Skip to content

Commit 1aa4708

Browse files
fix: Use TYPE_CHECKING for Element type hint in test_runner
Fixes AttributeError when defusedxml is used - Element class not exposed by defusedxml.ElementTree at runtime, only needed for type checking. Uses TYPE_CHECKING to import Element only during static analysis.
1 parent b87903f commit 1aa4708

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

src/empathy_os/workflows/test_runner.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,17 @@
1313
import uuid
1414
from datetime import datetime
1515
from pathlib import Path
16-
from typing import Any
16+
from typing import TYPE_CHECKING, Any
1717

1818
try:
1919
import defusedxml.ElementTree as ET
2020
except ImportError:
2121
import xml.etree.ElementTree as ET # noqa: S405
2222

23+
# Import Element for type hints only (defusedxml doesn't expose it)
24+
if TYPE_CHECKING:
25+
from xml.etree.ElementTree import Element
26+
2327
from empathy_os.models import CoverageRecord, TestExecutionRecord, get_telemetry_store
2428

2529
logger = logging.getLogger(__name__)
@@ -315,7 +319,7 @@ def _get_previous_coverage() -> float | None:
315319
return None
316320

317321

318-
def _analyze_coverage_files(root: ET.Element) -> dict[str, Any]:
322+
def _analyze_coverage_files(root: "Element") -> dict[str, Any]:
319323
"""Analyze file-level coverage from XML.
320324
321325
Returns:

0 commit comments

Comments
 (0)