from django.conf import settings from django.http import HttpResponse, StreamingHttpResponse from django.test import TestCase from .. import fileserver class FileServerTests(TestCase): def test_send_file(self): """send file produces valid response""" with self.settings(MISAGO_SENDFILE_HEADER='X-Test'): response = fileserver.make_file_response(__file__, 'text/python') self.assertTrue(isinstance(response, HttpResponse)) self.assertEqual(response['X-Test'], __file__) with self.settings(MISAGO_SENDFILE_HEADER=''): response = fileserver.make_file_response(__file__, 'text/python') self.assertTrue(isinstance(response, StreamingHttpResponse)) def test_rewrite_file_path(self): """file paths are rewritten""" with self.settings(MISAGO_SENDFILE_LOCATIONS_PATH='mymisagopath'): test_path = '%s/somefile.png' % settings.MISAGO_AVATAR_STORE rewritten_path = fileserver.rewrite_file_path(test_path) self.assertTrue(rewritten_path.startswith('/mymisagopath/')) with self.assertRaises(ValueError): fileserver.rewrite_file_path('some/non_rewrriten/path.zip') def test_send_header(self): """call to header response function returns HttpResponse""" with self.settings(MISAGO_SENDFILE_HEADER='X-Test'): response = fileserver.make_header_response( __file__, 'text/python', 9) self.assertTrue(isinstance(response, HttpResponse)) self.assertEqual(response['X-Test'], __file__) def test_send_stream(self): """call to streaming response function returns StreamingHttpResponse""" response = fileserver.make_stream_response(__file__, 'text/python', 9) self.assertTrue(isinstance(response, StreamingHttpResponse))