Added missing unit test for content type overrides.

This commit is contained in:
Sybren A. Stüvel 2016-05-03 11:23:26 +02:00
parent 0389b05b14
commit d0d8b7d11d

View File

@ -1,9 +1,53 @@
import os
import tempfile
from werkzeug.datastructures import FileStorage
from common_test_class import AbstractPillarTest
class FileStorageTest(AbstractPillarTest):
def fake_file(self, filename, content_type):
return FileStorage(filename=filename,
name='file', # form field name
content_type=content_type)
def test_override_content_type(self):
from application.modules.file_storage import override_content_type
fake = self.fake_file('compressed.blend', 'jemoeder')
override_content_type(fake)
self.assertEqual('application/x-blend', fake.content_type)
self.assertEqual('application/x-blend', fake.mimetype)
fake = self.fake_file('blend.mp3', 'application/octet-stream')
override_content_type(fake)
self.assertEqual('audio/mpeg', fake.content_type)
self.assertEqual('audio/mpeg', fake.mimetype)
# Official one is audio/mpeg, but if the browser gives audio/XXX, it should
# just be used.
fake = self.fake_file('blend.mp3', 'audio/mp3')
override_content_type(fake)
self.assertEqual('audio/mp3', fake.content_type)
self.assertEqual('audio/mp3', fake.mimetype)
fake = self.fake_file('mp3.mkv', 'application/octet-stream')
override_content_type(fake)
self.assertEqual('video/x-matroska', fake.content_type)
self.assertEqual('video/x-matroska', fake.mimetype)
fake = self.fake_file('mkv.mp3.avi.mp4', 'application/octet-stream')
override_content_type(fake)
self.assertEqual('video/mp4', fake.content_type)
self.assertEqual('video/mp4', fake.mimetype)
fake = self.fake_file('mkv.mp3.avi.mp4.unknown', 'application/awesome-type')
override_content_type(fake)
self.assertEqual('application/awesome-type', fake.content_type)
self.assertEqual('application/awesome-type', fake.mimetype)
class TempDirTest(AbstractPillarTest):
def test_tempfiles_location(self):
# After importing the application, tempfiles should be created in the STORAGE_DIR