Skip to content

Commit e79e4ac

Browse files
committed
feat: add status predicate helpers to Order
Add is_pending, is_completed, and is_cancelled property helpers that compare against the OrderStatus enum.
1 parent 8519e59 commit e79e4ac

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

src/didww/resources/order.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,18 @@ class Order(DidwwApiModel):
2727
class Meta:
2828
type = "orders"
2929

30+
@property
31+
def is_pending(self):
32+
return self.status == OrderStatus.PENDING
33+
34+
@property
35+
def is_completed(self):
36+
return self.status == OrderStatus.COMPLETED
37+
38+
@property
39+
def is_cancelled(self):
40+
return self.status == OrderStatus.CANCELED
41+
3042
@property
3143
def items(self):
3244
raw_items = self.attributes.get("items")

tests/resources/test_order.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,29 @@ def test_deserialization(self):
5858
assert item.emergency_calling_service_id == "abc-123"
5959

6060

61+
class TestOrderStatusHelpers:
62+
def test_is_pending(self):
63+
order = Order()
64+
order.status = OrderStatus.PENDING
65+
assert order.is_pending is True
66+
assert order.is_completed is False
67+
assert order.is_cancelled is False
68+
69+
def test_is_completed(self):
70+
order = Order()
71+
order.status = OrderStatus.COMPLETED
72+
assert order.is_completed is True
73+
assert order.is_pending is False
74+
assert order.is_cancelled is False
75+
76+
def test_is_cancelled(self):
77+
order = Order()
78+
order.status = OrderStatus.CANCELED
79+
assert order.is_cancelled is True
80+
assert order.is_pending is False
81+
assert order.is_completed is False
82+
83+
6184
class TestOrder:
6285
@my_vcr.use_cassette("orders/show.yaml")
6386
def test_find_order(self, client):

0 commit comments

Comments
 (0)