Skip to content

Commit 8cfcdc8

Browse files
committed
feat: add status predicate helpers to EmergencyCallingService
Expose STATUS_* constants and is_active/is_canceled/is_changes_required/ is_in_process/is_new/is_pending_update properties so callers can check status without string equality.
1 parent 0ec6061 commit 8cfcdc8

2 files changed

Lines changed: 53 additions & 0 deletions

File tree

src/didww/resources/emergency_calling_service.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,40 @@ class EmergencyCallingService(DidwwApiModel):
3131
emergency_verification = RelationField("emergency_verification")
3232
dids = RelationField("dids")
3333

34+
STATUS_ACTIVE = "active"
35+
STATUS_CANCELED = "canceled"
36+
STATUS_CHANGES_REQUIRED = "changes required"
37+
STATUS_IN_PROCESS = "in process"
38+
STATUS_NEW = "new"
39+
STATUS_PENDING_UPDATE = "pending update"
40+
3441
class Meta:
3542
type = "emergency_calling_services"
3643

44+
@property
45+
def is_active(self):
46+
return self.status == self.STATUS_ACTIVE
47+
48+
@property
49+
def is_canceled(self):
50+
return self.status == self.STATUS_CANCELED
51+
52+
@property
53+
def is_changes_required(self):
54+
return self.status == self.STATUS_CHANGES_REQUIRED
55+
56+
@property
57+
def is_in_process(self):
58+
return self.status == self.STATUS_IN_PROCESS
59+
60+
@property
61+
def is_new(self):
62+
return self.status == self.STATUS_NEW
63+
64+
@property
65+
def is_pending_update(self):
66+
return self.status == self.STATUS_PENDING_UPDATE
67+
3768

3869
class EmergencyCallingServiceRepository(ReadOnlyRepository):
3970
_resource_class = EmergencyCallingService

tests/resources/test_emergency_calling_service.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
11
from datetime import datetime, timezone
22

33
from tests.conftest import my_vcr
4+
from didww.resources.emergency_calling_service import EmergencyCallingService
5+
6+
7+
class TestEmergencyCallingServiceStatusHelpers:
8+
def test_is_active(self):
9+
ecs = EmergencyCallingService()
10+
ecs.status = "active"
11+
assert ecs.is_active is True
12+
assert ecs.is_canceled is False
13+
14+
def test_all_predicates(self):
15+
ecs = EmergencyCallingService()
16+
ecs.status = "canceled"
17+
assert ecs.is_canceled is True
18+
ecs.status = "changes required"
19+
assert ecs.is_changes_required is True
20+
ecs.status = "in process"
21+
assert ecs.is_in_process is True
22+
ecs.status = "new"
23+
assert ecs.is_new is True
24+
ecs.status = "pending update"
25+
assert ecs.is_pending_update is True
426

527

628
class TestEmergencyCallingService:

0 commit comments

Comments
 (0)