Skip to content

Commit

Permalink
add additional unit tests, add safety for if the patient gets added t…
Browse files Browse the repository at this point in the history
…o bacteraemia twice in the same episode (shouldn't happen)
  • Loading branch information
fredkingham committed Feb 13, 2017
1 parent cbbb549 commit 109179d
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 1 deletion.
4 changes: 3 additions & 1 deletion elcid/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,8 @@ def _get_field_default(cls, name):
@receiver(post_save, sender=omodels.Tagging)
def record_positive_blood_culture(sender, instance, **kwargs):
if instance.value == Bacteraemia.tag:
PositiveBloodCultureHistory.objects.get_or_create(
pbch, _ = PositiveBloodCultureHistory.objects.get_or_create(
patient_id=instance.episode.patient.id
)
pbch.when = datetime.datetime.now()
pbch.save()
21 changes: 21 additions & 0 deletions elcid/test/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -491,6 +491,27 @@ def test_not_created_on_a_different_tag_save(self):
self.episode.set_tag_names(["something"], self.user)
self.assertEqual(self.patient.positivebloodculturehistory_set.count(), 0)

def test_not_updated_on_other_removal(self):
weeks_ago = datetime.datetime(2017, 1, 1)
self.episode.set_tag_names(["bacteraemia"], self.user)
self.patient.positivebloodculturehistory_set.update(
when=weeks_ago
)
self.episode.set_tag_names(["something"], self.user)
pbch = self.patient.positivebloodculturehistory_set.get()
self.assertEqual(pbch.when.date(), weeks_ago.date())

def test_updated_on_repeat_saves(self):
weeks_ago = datetime.datetime(2017, 1, 1)
self.episode.set_tag_names(["bacteraemia"], self.user)
self.patient.positivebloodculturehistory_set.update(
when=weeks_ago
)
self.episode.set_tag_names(["something"], self.user)
self.episode.set_tag_names(["bacteraemia"], self.user)
pbch = self.patient.positivebloodculturehistory_set.get()
self.assertEqual(pbch.when.date(), datetime.date.today())

def test_only_one_instance_created(self):
self.episode.set_tag_names(["bacteraemia"], self.user)
self.episode.set_tag_names(["bacteraemia"], self.user)
Expand Down

0 comments on commit 109179d

Please sign in to comment.