diff --git a/markdownx/forms.py b/markdownx/forms.py index 1905efd..c52e90d 100755 --- a/markdownx/forms.py +++ b/markdownx/forms.py @@ -54,7 +54,7 @@ class ImageForm(forms.Form): content_type = image.content_type file_name = image.name image_extension = content_type.split('/')[-1].upper() - image_size = getattr(image, '_size') + image_size = image.size if content_type.lower() != self._SVG_TYPE: # Processing the raster graphic image. @@ -176,7 +176,7 @@ class ImageForm(forms.Form): raise MarkdownxImageUploadError.not_uploaded() content_type = upload.content_type - file_size = getattr(upload, '_size') + file_size = upload.size if content_type not in MARKDOWNX_UPLOAD_CONTENT_TYPES: diff --git a/markdownx/tests/static/django-markdownx-preview.png b/markdownx/tests/static/django-markdownx-preview.png new file mode 100644 index 0000000..769556b Binary files /dev/null and b/markdownx/tests/static/django-markdownx-preview.png differ diff --git a/markdownx/tests/tests.py b/markdownx/tests/tests.py index 63e2174..2b0345c 100644 --- a/markdownx/tests/tests.py +++ b/markdownx/tests/tests.py @@ -1,4 +1,10 @@ +import os +import re from django.test import TestCase +try: + from django.urls import reverse +except ImportError: # Djanago < 2.0 + from django.core.urlresolvers import reverse class SimpleTest(TestCase): @@ -6,3 +12,24 @@ class SimpleTest(TestCase): def test_me(self): response = self.client.get('/testview/') self.assertEqual(response.status_code, 200) + + def test_upload(self): + url = reverse('markdownx_upload') + with open('markdownx/tests/static/django-markdownx-preview.png', 'rb') as fp: + response = self.client.post(url, {'image': fp}, HTTP_X_REQUESTED_WITH='XMLHttpRequest') + + try: + json = response.json() + except AttributeError: # Django < 1.9 + import json + json = json.loads(response.content.decode('utf-8')) + + self.assertEqual(response.status_code, 200) + self.assertIn('image_code', json) + + match = re.findall(r'(markdownx/[\w\-]+\.png)', json['image_code']) + try: + if match: + os.remove(match[0]) + except OSError: + pass