Skip to content

Commit

Permalink
Added symptoms to SuspectedCase aggregate.
Browse files Browse the repository at this point in the history
  • Loading branch information
johnbywater committed May 8, 2020
1 parent de31b77 commit 4a74052
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
19 changes: 19 additions & 0 deletions costello/domainmodel/suspected_case.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ class SuspectedCase(BaseAggregateRoot):

def __init__(self, *, person_id, **kwargs: Any):
super().__init__(**kwargs)
self.symptoms = []
self.person_id = person_id
self.test_results = []
self.is_closed = False
Expand Down Expand Up @@ -50,3 +51,21 @@ def mutate(self, obj: "SuspectedCase") -> None:
@property
def has_been_tested(self):
return bool(len(self.test_results))

def record_symptoms(self, symptoms: tuple, date: date):
self.__trigger_event__(SuspectedCase.SymptomsRecorded, symptoms=symptoms, date=date)

class SymptomsRecorded(BaseAggregateRoot.Event):
@property
def symptoms(self):
return self.__dict__['symptoms']

@property
def date(self):
return self.__dict__['date']

def mutate(self, obj: "SuspectedCase"):
obj.symptoms.append({
"symptoms": self.symptoms,
"date": self.date
})
8 changes: 8 additions & 0 deletions test_suspected_case.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,11 @@ def test_record_test_result(self):
self.assertEqual(case.test_results[1]["type"], "PCR")
self.assertEqual(case.test_results[1]["date"], date(2020, 4, 8))
self.assertEqual(case.test_results[1]["result"], "negative")

def test_record_symptoms(self):
case = SuspectedCase.open(person_id=uuid4())

# Has cough.
case.record_symptoms(symptoms=["cough", "fever"], date=date(2020, 4, 1))
self.assertEqual(len(case.symptoms), 1)

0 comments on commit 4a74052

Please sign in to comment.