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)
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)
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()), })
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))
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))
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()), })