Beispiel #1
0
    def test_comment_image_upload(self):
        """
        Image upload
        """
        content = 'GIF87a\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00ccc,\x00' \
                  '\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;'
        img = StringIO(content)
        files = {'image': SimpleUploadedFile('image.gif', img.read(), content_type='image/gif'), }

        form = CommentImageForm(user=self.user, data={}, files=files)
        self.assertTrue(form.is_valid())
        image = form.save()
        self.assertEqual(image.name, "bf21c3043d749d5598366c26e7e4ab44.gif")
        image_url = os.path.join(settings.MEDIA_URL, 'spirit', 'images', str(self.user.pk),
                                 image.name).replace("\\", "/")
        self.assertEqual(image.url, image_url)
        image_path = os.path.join(settings.MEDIA_ROOT, 'spirit', 'images', str(self.user.pk), image.name)
        self.assertTrue(os.path.isfile(image_path))
        image.open()
        self.assertEqual(image.read(), content)

        with open(image_path, "rb") as fh:
            self.assertEqual(fh.read(), content)

        os.remove(image_path)
Beispiel #2
0
    def test_comment_image_upload(self):
        """
        Image upload
        """
        content = b'GIF87a\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00ccc,\x00' \
                  b'\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;'
        img = BytesIO(content)
        files = {
            'image':
            SimpleUploadedFile('image.gif',
                               img.read(),
                               content_type='image/gif'),
        }

        form = CommentImageForm(user=self.user, data={}, files=files)
        self.assertTrue(form.is_valid())
        image = form.save()
        self.assertEqual(image.name, "bf21c3043d749d5598366c26e7e4ab44.gif")
        image_url = os.path.join(settings.MEDIA_URL, 'spirit', 'images',
                                 str(self.user.pk),
                                 image.name).replace("\\", "/")
        self.assertEqual(image.url, image_url)
        image_path = os.path.join(settings.MEDIA_ROOT, 'spirit', 'images',
                                  str(self.user.pk), image.name)
        self.assertTrue(os.path.isfile(image_path))

        with open(image_path, "rb") as fh:
            self.assertEqual(fh.read(), content)

        os.remove(image_path)
Beispiel #3
0
 def test_comment_image_upload_invalid(self):
     """
     Image upload, bad image
     """
     img = StringIO('bad\x00;')
     files = {'image': SimpleUploadedFile('image.gif', img.read(), content_type='image/gif'), }
     form = CommentImageForm(data={}, files=files)
     self.assertFalse(form.is_valid())
Beispiel #4
0
 def test_comment_image_upload_invalid(self):
     """
     Image upload, bad image
     """
     img = StringIO('bad\x00;')
     files = {'image': SimpleUploadedFile('image.gif', img.read(), content_type='image/gif'), }
     form = CommentImageForm(data={}, files=files)
     self.assertFalse(form.is_valid())
Beispiel #5
0
 def test_comment_image_upload_not_allowed_format(self):
     """
     Image upload, invalid format
     """
     img = StringIO('GIF87a\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00ccc,\x00'
                    '\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;')
     # fake png extension
     files = {'image': SimpleUploadedFile('image.png', img.read(), content_type='image/png'), }
     form = CommentImageForm(data={}, files=files)
     self.assertFalse(form.is_valid())
Beispiel #6
0
 def test_comment_image_upload_not_allowed_format(self):
     """
     Image upload, invalid format
     """
     img = StringIO('GIF87a\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00ccc,\x00'
                    '\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;')
     # fake png extension
     files = {'image': SimpleUploadedFile('image.png', img.read(), content_type='image/png'), }
     form = CommentImageForm(data={}, files=files)
     self.assertFalse(form.is_valid())
Beispiel #7
0
def comment_image_upload_ajax(request):
    if not request.is_ajax():
        return Http404()

    form = CommentImageForm(user=request.user, data=request.POST, files=request.FILES)

    if form.is_valid():
        image = form.save()
        return json_response({'url': image.url, })

    return json_response({'error': dict(form.errors.items()), })
Beispiel #8
0
 def test_comment_image_upload_no_extension(self):
     """
     Image upload no extension
     """
     img = StringIO('GIF87a\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00ccc,\x00'
                    '\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;')
     files = {'image': SimpleUploadedFile('image', img.read(), content_type='image/gif'), }
     form = CommentImageForm(user=self.user, data={}, files=files)
     self.assertTrue(form.is_valid())
     image = form.save()
     self.assertEqual(image.name, "bf21c3043d749d5598366c26e7e4ab44.gif")
     os.remove(os.path.join(settings.MEDIA_ROOT, 'spirit', 'images', str(self.user.pk), image.name))
Beispiel #9
0
 def test_comment_image_upload_bad_extension(self):
     """
     Image upload bad extensions are removed
     """
     img = StringIO('GIF87a\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00ccc,\x00'
                    '\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02D\x01\x00;')
     files = {'image': SimpleUploadedFile('image.gif', img.read(), content_type='image/gif'), }
     form = CommentImageForm(user=self.user, data={}, files=files)
     self.assertTrue(form.is_valid())
     image = form.save()
     self.assertEqual(image.name, "bf21c3043d749d5598366c26e7e4ab44")
     os.remove(os.path.join(settings.MEDIA_ROOT, 'spirit', 'images', str(self.user.pk), image.name))
Beispiel #10
0
def comment_image_upload_ajax(request):
    if not request.is_ajax():
        return Http404()

    form = CommentImageForm(user=request.user,
                            data=request.POST,
                            files=request.FILES)

    if form.is_valid():
        image = form.save()
        return json_response({
            'url': image.url,
        })

    return json_response({
        'error': dict(form.errors.items()),
    })