Projet

Général

Profil

0001-misc-return-correct-mimetype-for-thumbnailed-files-1.patch

Frédéric Péters, 11 juin 2016 13:54

Télécharger (2,56 ko)

Voir les différences:

Subject: [PATCH] misc: return correct mimetype for thumbnailed files (#11307)

 tests/test_form_pages.py | 29 +++++++++++++++++++++++++++++
 wcs/forms/root.py        |  1 +
 2 files changed, 30 insertions(+)
tests/test_form_pages.py
11 11
from webtest import Upload
12 12
import mock
13 13

  
14
try:
15
    from PIL import Image
16
except ImportError:
17
    Image = None
18

  
14 19
from quixote.http_request import Upload as QuixoteUpload
15 20
from wcs.qommon.form import UploadedFile
16 21
from wcs.qommon.ident.password_accounts import PasswordAccount
......
1493 1498
    assert resp.content_type == 'text/plain'
1494 1499
    assert resp.body == 'foobar'
1495 1500

  
1501
def test_form_file_field_image_submit(pub):
1502
    formdef = create_formdef()
1503
    formdef.fields = [fields.FileField(id='0', label='file')]
1504
    formdef.store()
1505
    formdef.data_class().wipe()
1506

  
1507
    image_content = open(os.path.join(os.path.dirname(__file__), 'image-with-gps-data.jpeg')).read()
1508
    upload = Upload('test.jpg', image_content, 'image/jpeg')
1509

  
1510
    app = get_app(pub)
1511
    resp = app.get('/test/')
1512
    resp.forms[0]['f0$file'] = upload
1513
    resp = resp.forms[0].submit('submit')
1514
    assert 'Check values then click submit.' in resp.body
1515
    assert '<img alt="" src="tempfile?' in resp.body
1516
    tempfile_id = resp.body[resp.body.index('tempfile?'):].split('&', 1)[0].split('=')[1]
1517

  
1518
    resp = app.get('/test/tempfile?t=%s' % tempfile_id)
1519
    assert resp.body == image_content
1520

  
1521
    if Image: # check thumbnailing
1522
        resp = app.get('/test/tempfile?t=%s&thumbnail=1' % tempfile_id)
1523
        assert resp.content_type == 'image/png'
1524

  
1496 1525
def test_form_file_field_submit_wrong_mimetype(pub):
1497 1526
    formdef = create_formdef()
1498 1527
    formdef.fields = [fields.FileField(id='0', label='file')]
wcs/forms/root.py
1023 1023
            except IOError:
1024 1024
                # too bad we couldn't load the image, return the whole file :/
1025 1025
                return file_pointer.read()
1026
            response.set_content_type('image/png')
1026 1027
            return image_thumb_fp.getvalue()
1027 1028
        else:
1028 1029
            return file_pointer.read()
1029
-