diff --git a/pytr/transactions.py b/pytr/transactions.py index 1257f63..25df9b4 100644 --- a/pytr/transactions.py +++ b/pytr/transactions.py @@ -218,7 +218,10 @@ def from_event(self, event: Event) -> Iterable[dict[str, Any]]: elif event.isin == "LU3170240538": kwargs["note"] = "Apollo" - assert event.value is not None, event + if event.value is None: + self._log.warning("Skipping private markets event without value: %s", event) + return + kwargs["type"] = self._translate((PPEventType.BUY if event.value < 0 else PPEventType.SELL).value) if event.note == "1 % Bonus": yield self._localize_keys(kwargs) diff --git a/tests/test_events.py b/tests/test_events.py index 9dba310..37b0666 100644 --- a/tests/test_events.py +++ b/tests/test_events.py @@ -1,4 +1,5 @@ import json +from datetime import datetime, timezone from pytr.event import ConditionalEventType, Event, PPEventType from pytr.transactions import TransactionExporter @@ -1882,3 +1883,22 @@ def test_events(): entry.setdefault("ISIN2", None) entry.setdefault("Stück2", None) assert transactions == rowtransactions + + +def test_private_markets_order_without_value_is_skipped(): + formatter = TransactionExporter(lang="de") + event = Event( + event_type=ConditionalEventType.PRIVATE_MARKETS_ORDER, + date=datetime(2026, 3, 9, 7, 56, 12, tzinfo=timezone.utc), + title="Private Equity", + isin="LU3176111881", + isin2=None, + shares=0, + shares2=None, + value=None, + fees=None, + taxes=None, + note="Vorabpauschale", + ) + + assert list(formatter.from_event(event)) == []