|
3 | 3 | import uuid |
4 | 4 | import datetime |
5 | 5 | import unittest |
| 6 | +from unittest.mock import MagicMock |
6 | 7 | from copy import deepcopy |
7 | 8 | from unittest.mock import create_autospec, patch |
8 | 9 | from unittest import skip |
@@ -538,6 +539,64 @@ def test_patient_error(self): |
538 | 539 | # Then |
539 | 540 | self.assertEqual(e.exception.patient_identifier, invalid_nhs_number) |
540 | 541 | self.imms_repo.update_immunization.assert_not_called() |
| 542 | + |
| 543 | + def test_reinstate_immunization_returns_updated_version(self): |
| 544 | + """it should return updated version from reinstate""" |
| 545 | + imms_id = "an-id" |
| 546 | + req_imms = create_covid_19_immunization_dict(imms_id) |
| 547 | + self.fhir_service._validate_patient = MagicMock(return_value={}) |
| 548 | + self.imms_repo.reinstate_immunization.return_value = (req_imms, 5) |
| 549 | + |
| 550 | + outcome, resource, version = self.fhir_service.reinstate_immunization( |
| 551 | + imms_id, req_imms, 1, ["COVID19:CRUD"], "Test" |
| 552 | + ) |
| 553 | + |
| 554 | + self.assertEqual(outcome, UpdateOutcome.UPDATE) |
| 555 | + self.assertEqual(version, 5) |
| 556 | + |
| 557 | + def test_update_reinstated_immunization_returns_updated_version(self): |
| 558 | + """it should return updated version from update_reinstated""" |
| 559 | + imms_id = "an-id" |
| 560 | + req_imms = create_covid_19_immunization_dict(imms_id) |
| 561 | + self.fhir_service._validate_patient = MagicMock(return_value={}) |
| 562 | + self.imms_repo.update_reinstated_immunization.return_value = (req_imms, 9) |
| 563 | + |
| 564 | + outcome, resource, version = self.fhir_service.update_reinstated_immunization( |
| 565 | + imms_id, req_imms, 1, ["COVID19:CRUD"], "Test" |
| 566 | + ) |
| 567 | + |
| 568 | + self.assertEqual(outcome, UpdateOutcome.UPDATE) |
| 569 | + self.assertEqual(version, 9) |
| 570 | + |
| 571 | + def test_reinstate_immunization_with_diagnostics(self): |
| 572 | + """it should return error if patient has diagnostics in reinstate""" |
| 573 | + imms_id = "an-id" |
| 574 | + req_imms = create_covid_19_immunization_dict(imms_id) |
| 575 | + self.fhir_service._validate_patient = MagicMock(return_value={"diagnostics": "invalid patient"}) |
| 576 | + |
| 577 | + outcome, resource, version = self.fhir_service.reinstate_immunization( |
| 578 | + imms_id, req_imms, 1, ["COVID19:CRUD"], "Test" |
| 579 | + ) |
| 580 | + |
| 581 | + self.assertIsNone(outcome) |
| 582 | + self.assertEqual(resource, {"diagnostics": "invalid patient"}) |
| 583 | + self.assertIsNone(version) |
| 584 | + self.imms_repo.reinstate_immunization.assert_not_called() |
| 585 | + |
| 586 | + def test_update_reinstated_immunization_with_diagnostics(self): |
| 587 | + """it should return error if patient has diagnostics in update_reinstated""" |
| 588 | + imms_id = "an-id" |
| 589 | + req_imms = create_covid_19_immunization_dict(imms_id) |
| 590 | + self.fhir_service._validate_patient = MagicMock(return_value={"diagnostics": "invalid patient"}) |
| 591 | + |
| 592 | + outcome, resource, version = self.fhir_service.update_reinstated_immunization( |
| 593 | + imms_id, req_imms, 1, ["COVID19:CRUD"], "Test" |
| 594 | + ) |
| 595 | + |
| 596 | + self.assertIsNone(outcome) |
| 597 | + self.assertEqual(resource, {"diagnostics": "invalid patient"}) |
| 598 | + self.assertIsNone(version) |
| 599 | + self.imms_repo.update_reinstated_immunization.assert_not_called() |
541 | 600 |
|
542 | 601 |
|
543 | 602 | class TestDeleteImmunization(unittest.TestCase): |
|
0 commit comments