def test_data_value_is_required(self): """ Test media `data_value` is required. """ data = {} serializer = MetaDataSerializer(data=data) self.assertFalse(serializer.is_valid()) self.assertEqual(serializer.errors['data_value'], [u'This field is required.'])
def get_xform_metadata(self, obj): if obj: return MetaDataSerializer(obj.metadata_set.all(), many=True, context=self.context).data return []
def test_media_url_validation(self): """ Test media `data_value` url. """ self._login_user_and_profile() self._publish_form_with_hxl_support() data = { 'data_value': 'http://example.com', 'data_type': 'media', 'xform': self.xform.pk } serializer = MetaDataSerializer(data=data) self.assertFalse(serializer.is_valid()) self.assertEqual( serializer.errors['data_value'], [(u"Cannot get filename from URL %(data_value)s. URL should " u"include the filename e.g %(data_value)s/data.csv" % data)])
def test_svg_media_files(self): """ Test that an SVG file is uploaded """ self._login_user_and_profile() self._publish_form_with_hxl_support() data_value = 'sample.svg' path = os.path.join(os.path.dirname(__file__), 'fixtures', 'sample.svg') with open(path) as f: f = InMemoryUploadedFile( f, 'media', data_value, 'application/octet-stream', 2324, None) data = { 'data_value': data_value, 'data_file': f, 'data_type': 'media', 'xform': self.xform.pk } serializer = MetaDataSerializer(data=data) self.assertTrue(serializer.is_valid()) self.assertEquals(serializer.validated_data['data_file_type'], 'image/svg+xml')
def get_xform_metadata(self, obj): if obj: xform_metadata = cache.get('{}{}'.format(XFORM_METADATA_CACHE, obj.pk)) if xform_metadata: return xform_metadata xform_metadata = MetaDataSerializer(obj.metadata_set.all(), many=True, context=self.context).data cache.set('{}{}'.format(XFORM_METADATA_CACHE, obj.pk), xform_metadata) return xform_metadata return []