From 7eace9212d0aff8fe99587bacf351dd6769a2581 Mon Sep 17 00:00:00 2001 From: Paul de Raaij Date: Wed, 29 Jul 2026 10:40:04 -0400 Subject: [PATCH] refactor: rename raise_event to apply_event and _events to _changes --- domain/framework/entity.py | 10 +++++----- domain/marketplace/classified_ad.py | 14 +++++++------- tests/test_classified_ad.py | 4 ++-- tests/test_entity.py | 20 ++++++++++---------- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/domain/framework/entity.py b/domain/framework/entity.py index b783d51..fa2cb43 100644 --- a/domain/framework/entity.py +++ b/domain/framework/entity.py @@ -6,13 +6,13 @@ from domain.marketplace.domain_event import DomainEvent class Entity(ABC): - _events: tuple[DomainEvent, ...] = () + _changes: tuple[DomainEvent, ...] = () - def raise_event(self, event: DomainEvent) -> Self: - return replace(self, _events=(*self._events, event)) + def apply_event(self, event: DomainEvent) -> Self: + return replace(self, _changes=(*self._changes, event)) def get_changes(self) -> tuple[DomainEvent, ...]: - return self._events + return self._changes def clear_changes(self) -> Self: - return replace(self, _events=()) + return replace(self, _changes=()) diff --git a/domain/marketplace/classified_ad.py b/domain/marketplace/classified_ad.py index ad7c415..cfe77e8 100644 --- a/domain/marketplace/classified_ad.py +++ b/domain/marketplace/classified_ad.py @@ -31,11 +31,11 @@ class ClassifiedAd(Entity): text: ClassifiedAdText = field(default_factory=lambda: ClassifiedAdText(text="")) price: Price = field(default_factory=lambda: Price(amount=Decimal("0.00"))) state: ClassifiedAdState = ClassifiedAdState.Inactive - _events: tuple[DomainEvent, ...] = () + _changes: tuple[DomainEvent, ...] = () def __post_init__(self): - if not self._events: - object.__setattr__(self, '_events', ( + if not self._changes: + object.__setattr__(self, '_changes', ( ClassifiedAdCreated(id=self.id.value, owner_id=self._ownerId.value), )) @@ -57,27 +57,27 @@ class ClassifiedAd(Entity): self._ensure_valid_state() updated = replace(self, state=ClassifiedAdState.PendingReview) - return updated.raise_event( + return updated.apply_event( ClassifiedAdSentForReview(id=self.id.value) ) def set_title(self, title: ClassifiedAdTitle) -> ClassifiedAd: updated = replace(self, title=title) updated._ensure_valid_state() - return updated.raise_event( + return updated.apply_event( ClassifiedAdTitleChanged(id=self.id.value, title=title.title) ) def update_text(self, text: ClassifiedAdText) -> ClassifiedAd: updated = replace(self, text=text) updated._ensure_valid_state() - return updated.raise_event( + return updated.apply_event( ClassifiedAdTextUpdated(id=self.id.value, ad_text=text.text) ) def update_price(self, price: Price) -> ClassifiedAd: updated = replace(self, price=price) updated._ensure_valid_state() - return updated.raise_event( + return updated.apply_event( ClassifiedAdPriceUpdated(id=self.id.value, price=price.amount) ) diff --git a/tests/test_classified_ad.py b/tests/test_classified_ad.py index 6daf006..f64bff6 100644 --- a/tests/test_classified_ad.py +++ b/tests/test_classified_ad.py @@ -248,7 +248,7 @@ def test_classified_ad_is_instance_of_entity(): assert isinstance(ad, Entity) -def test_classified_ad_can_use_entity_raise_event(): +def test_classified_ad_can_use_entity_apply_event(): ad = ClassifiedAd( id=ClassifiedAdId(value=uuid4()), _ownerId=UserId(value=uuid4()), @@ -258,7 +258,7 @@ def test_classified_ad_can_use_entity_raise_event(): ) event = ClassifiedAdSentForReview(id=ad.id.value) - updated_ad = ad.raise_event(event) + updated_ad = ad.apply_event(event) assert updated_ad.get_changes() == (ad.get_changes()[0], event) assert len(ad.get_changes()) == 1 diff --git a/tests/test_entity.py b/tests/test_entity.py index 50cb056..8506b8c 100644 --- a/tests/test_entity.py +++ b/tests/test_entity.py @@ -12,7 +12,7 @@ from domain.marketplace.domain_event import ( @dataclass(frozen=True) class TestEntity(Entity): __test__ = False - _events: tuple[DomainEvent, ...] = () + _changes: tuple[DomainEvent, ...] = () def test_entity_creation(): @@ -20,20 +20,20 @@ def test_entity_creation(): assert entity.get_changes() == () -def test_raise_event_returns_new_instance_with_event(): +def test_apply_event_returns_new_instance_with_event(): entity = TestEntity() event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4()) - new_entity = entity.raise_event(event) + new_entity = entity.apply_event(event) assert new_entity.get_changes() == (event,) -def test_raise_event_does_not_mutate_original(): +def test_apply_event_does_not_mutate_original(): entity = TestEntity() event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4()) - entity.raise_event(event) + entity.apply_event(event) assert entity.get_changes() == () @@ -43,8 +43,8 @@ def test_multiple_events_accumulate(): event1 = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4()) event2 = ClassifiedAdSentForReview(id=uuid4()) - entity = entity.raise_event(event1) - entity = entity.raise_event(event2) + entity = entity.apply_event(event1) + entity = entity.apply_event(event2) assert entity.get_changes() == (event1, event2) @@ -52,7 +52,7 @@ def test_multiple_events_accumulate(): def test_clear_changes_returns_instance_with_empty_events(): entity = TestEntity() event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4()) - entity = entity.raise_event(event) + entity = entity.apply_event(event) cleared = entity.clear_changes() @@ -62,7 +62,7 @@ def test_clear_changes_returns_instance_with_empty_events(): def test_clear_changes_does_not_mutate_original(): entity = TestEntity() event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4()) - entity = entity.raise_event(event) + entity = entity.apply_event(event) entity.clear_changes() @@ -72,7 +72,7 @@ def test_clear_changes_does_not_mutate_original(): def test_get_changes_returns_tuple(): entity = TestEntity() event = ClassifiedAdCreated(id=uuid4(), owner_id=uuid4()) - entity = entity.raise_event(event) + entity = entity.apply_event(event) changes = entity.get_changes()