from karldns.dns.rfc2136 import _apply_record_update, _RecordUpdate class _FakeUpdate: def __init__(self) -> None: self.calls: list[tuple[object, ...]] = [] def replace(self, *args: object) -> None: self.calls.append(("replace", *args)) def delete(self, *args: object) -> None: self.calls.append(("delete", *args)) def test_apply_record_update_replaces_deletes_or_skips_record_type() -> None: update = _FakeUpdate() _apply_record_update(update, "home", _RecordUpdate(ttl=60, record_type="A", value="203.0.113.7", enabled=True)) _apply_record_update(update, "home", _RecordUpdate(ttl=60, record_type="AAAA", value=None, enabled=True)) _apply_record_update(update, "home", _RecordUpdate(ttl=60, record_type="TXT", value="ignored", enabled=False)) assert update.calls == [ ("replace", "home", 60, "A", "203.0.113.7"), ("delete", "home", "AAAA"), ]