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)
示例#3
0
  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'])
示例#4
0
  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)