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.'])
示例#2
0
    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')
示例#5
0
    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 []