Files
data-platform/tests/test_helpers_automation.py
Stijnvandenbroek 05aadaec29 feat: small refactor
2026-03-08 16:41:30 +00:00

65 lines
1.9 KiB
Python

"""Tests for data_platform.helpers.automation — apply_automation."""
from unittest.mock import MagicMock
from dagster import AssetSpec
from data_platform.helpers.automation import (
AUTOMATION_CONDITION,
_is_manual,
apply_automation,
)
def _make_asset_def(tags: dict | None = None):
"""Create a minimal mock AssetsDefinition with the given tags."""
spec = MagicMock(spec=AssetSpec)
spec.tags = tags or {}
asset_def = MagicMock()
asset_def.specs = [spec]
updated = MagicMock()
asset_def.with_attributes.return_value = updated
return asset_def, updated
class TestIsManual:
def test_manual_when_tagged(self):
asset_def, _ = _make_asset_def(tags={"manual": "true"})
assert _is_manual(asset_def) is True
def test_not_manual_when_no_tags(self):
asset_def, _ = _make_asset_def(tags={})
assert _is_manual(asset_def) is False
def test_not_manual_when_other_tags(self):
asset_def, _ = _make_asset_def(tags={"owner": "team-data"})
assert _is_manual(asset_def) is False
class TestApplyAutomation:
def test_manual_asset_unchanged(self):
asset_def, _ = _make_asset_def(tags={"manual": "true"})
result = apply_automation([asset_def])
assert result == [asset_def]
asset_def.with_attributes.assert_not_called()
def test_non_manual_asset_gets_condition(self):
asset_def, updated = _make_asset_def(tags={})
result = apply_automation([asset_def])
assert result == [updated]
asset_def.with_attributes.assert_called_once_with(
automation_condition=AUTOMATION_CONDITION
)
def test_empty_list(self):
assert apply_automation([]) == []
def test_mixed_assets(self):
manual, _ = _make_asset_def(tags={"manual": "true"})
auto, auto_updated = _make_asset_def(tags={})
result = apply_automation([manual, auto])
assert result == [manual, auto_updated]