def testInsert_amend(self): self._make_summary() with FakeClock(TIME_2): measurements = self.dao.insert( self._make_physical_measurements(physicalMeasurementsId=1)) amendment_json = load_measurement_json_amendment( self.participant.participantId, measurements.physicalMeasurementsId, TIME_2) with FakeClock(TIME_3): new_measurements = self.dao.insert( self._make_physical_measurements( physicalMeasurementsId=2, resource=json.dumps(amendment_json))) measurements = self.dao.get(measurements.physicalMeasurementsId) amended_json = json.loads(measurements.resource) self.assertEquals('amended', amended_json['entry'][0]['resource']['status']) self.assertEquals('1', amended_json['id']) amendment_json = json.loads(new_measurements.resource) self.assertEquals('2', amendment_json['id']) self.assertTrue(new_measurements.final) self.assertEquals(TIME_3, new_measurements.created) ps_dao = ParticipantSummaryDao().get(self.participant.participantId) # An amendment should not add a distinct visit count to summary self.assertEqual(ps_dao.numberDistinctVisits, 1)
def testInsert_amend(self): self._make_summary() with FakeClock(TIME_2): measurements = self.dao.insert( self._make_physical_measurements(physicalMeasurementsId=1)) amendment_json = load_measurement_json_amendment( self.participant.participantId, measurements.physicalMeasurementsId, TIME_2) with FakeClock(TIME_3): new_measurements = self.dao.insert( self._make_physical_measurements( physicalMeasurementsId=2, resource=json.dumps(amendment_json))) measurements = self.dao.get(measurements.physicalMeasurementsId) amended_json = json.loads(measurements.resource) self.assertEquals('amended', amended_json['entry'][0]['resource']['status']) self.assertEquals('1', amended_json['id']) amendment_json = json.loads(new_measurements.resource) self.assertEquals('2', amendment_json['id']) self.assertTrue(new_measurements.final) self.assertEquals(TIME_3, new_measurements.created)
def test_insert_and_amend(self): self.send_consent(self.participant_id) measurements_1 = load_measurement_json(self.participant_id) path_1 = 'Participant/%s/PhysicalMeasurements' % self.participant_id response = self.send_post(path_1, measurements_1) measurements_2 = load_measurement_json_amendment(self.participant_id, response['id']) self.send_post(path_1, measurements_2) response = self.send_get('Participant/%s/PhysicalMeasurements' % self.participant_id) self.assertEquals(2, len(response['entry'])) self.assertEquals("amended", response['entry'][0]['resource']['entry'][0]['resource']['status'])
def test_cancel_an_ammended_order(self): self.send_consent(self.participant_id) measurements_1 = load_measurement_json(self.participant_id) path = 'Participant/%s/PhysicalMeasurements' % self.participant_id response = self.send_post(path, measurements_1) measurements_2 = load_measurement_json_amendment(self.participant_id, response['id']) response_2 = self.send_post(path, measurements_2) path = path + '/' + response_2['id'] cancel_info = get_restore_or_cancel_info() self.send_patch(path, cancel_info) response = self.send_get(path) self.assertEqual(response['status'], 'CANCELLED') self.assertEqual(response['reason'], 'a mistake was made.') self.assertEqual(response['cancelledUsername'], '*****@*****.**') self.assertEqual(response['cancelledSiteId'], 1)