def test_data_w_attachment(self): self._submit_transport_instance_w_attachment() view = DataViewSet.as_view({'get': 'list'}) request = self.factory.get('/', **self.extra) response = view(request) self.assertEqual(response.status_code, 200) formid = self.xform.pk data = _data_list(formid) self.assertEqual(response.data, data) response = view(request, pk=formid) self.assertEqual(response.status_code, 200) self.assertIsInstance(response.data, list) self.assertTrue(self.xform.instances.count()) dataid = self.xform.instances.all().order_by('id')[0].pk data = { u'_bamboo_dataset_id': u'', u'_attachments': [{ 'download_url': get_attachment_url(self.attachment), 'small_download_url': get_attachment_url(self.attachment, 'small'), 'medium_download_url': get_attachment_url(self.attachment, 'medium'), u'mimetype': self.attachment.mimetype, u'instance': self.attachment.instance.pk, u'filename': self.attachment.media_file.name, u'id': self.attachment.pk, u'xform': self.xform.id }], u'_geolocation': [None, None], u'_xform_id_string': u'transportation_2011_07_25', u'transport/available_transportation_types_to_referral_facility': u'none', u'_status': u'submitted_via_web', u'_id': dataid } self.assertDictContainsSubset(data, sorted(response.data)[0]) data = { u'_xform_id_string': u'transportation_2011_07_25', u'transport/available_transportation_types_to_referral_facility': u'none', u'_submitted_by': u'bob', } view = DataViewSet.as_view({'get': 'retrieve'}) response = view(request, pk=formid, dataid=dataid) self.assertEqual(response.status_code, 200) self.assertIsInstance(response.data, dict) self.assertDictContainsSubset(data, response.data)
def test_data_w_attachment(self): self._submit_transport_instance_w_attachment() view = DataViewSet.as_view({'get': 'list'}) request = self.factory.get('/', **self.extra) response = view(request) self.assertEqual(response.status_code, 200) formid = self.xform.pk data = _data_list(formid) self.assertEqual(response.data, data) response = view(request, pk=formid) self.assertEqual(response.status_code, 200) self.assertIsInstance(response.data, list) self.assertTrue(self.xform.instances.count()) dataid = self.xform.instances.all().order_by('id')[0].pk data = { u'_bamboo_dataset_id': u'', u'_attachments': [{ 'download_url': get_attachment_url(self.attachment), 'small_download_url': get_attachment_url(self.attachment, 'small'), 'medium_download_url': get_attachment_url(self.attachment, 'medium'), u'mimetype': self.attachment.mimetype, u'instance': self.attachment.instance.pk, u'filename': self.attachment.media_file.name, u'id': self.attachment.pk, u'xform': self.xform.id} ], u'_geolocation': [None, None], u'_xform_id_string': u'transportation_2011_07_25', u'transport/available_transportation_types_to_referral_facility': u'none', u'_status': u'submitted_via_web', u'_id': dataid } self.assertDictContainsSubset(data, sorted(response.data)[0]) data = { u'_xform_id_string': u'transportation_2011_07_25', u'transport/available_transportation_types_to_referral_facility': u'none', u'_submitted_by': u'bob', } view = DataViewSet.as_view({'get': 'retrieve'}) response = view(request, pk=formid, dataid=dataid) self.assertEqual(response.status_code, 200) self.assertIsInstance(response.data, dict) self.assertDictContainsSubset(data, response.data)
def get_medium_download_url(self, obj): request = self.context.get('request') if obj.mimetype.startswith('image'): path = get_attachment_url(obj, 'medium') return request.build_absolute_uri(path) if request else path
def get_download_url(self, obj): request = self.context.get('request') if obj: path = get_attachment_url(obj) return request.build_absolute_uri(path) if request else path
def attachment_url(attachment, suffix=None): path = get_attachment_url(attachment, suffix) return u'http://testserver{}'.format(path)
def attachment_url(attachment, suffix=None): path = get_attachment_url(attachment, suffix) return u'http://testserver{}'.format(path)