test_fileserver.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import os
  2. from django.conf import settings
  3. from django.http import HttpResponse, StreamingHttpResponse
  4. from django.test import TestCase
  5. from misago.core import fileserver
  6. class FileServerTests(TestCase):
  7. def test_send_file(self):
  8. """send file produces valid response"""
  9. with self.settings(MISAGO_SENDFILE_HEADER='X-Test'):
  10. response = fileserver.make_file_response(__file__, 'text/python')
  11. self.assertTrue(isinstance(response, HttpResponse))
  12. self.assertEqual(response['X-Test'], __file__)
  13. with self.settings(MISAGO_SENDFILE_HEADER=''):
  14. response = fileserver.make_file_response(__file__, 'text/python')
  15. self.assertTrue(isinstance(response, StreamingHttpResponse))
  16. def test_rewrite_file_path(self):
  17. """file paths are rewritten"""
  18. with self.settings(MISAGO_SENDFILE_LOCATIONS_PATH='mymisagopath'):
  19. test_path = '%s/somefile.png' % settings.MISAGO_AVATAR_STORE
  20. rewritten_path = fileserver.rewrite_file_path(test_path)
  21. self.assertTrue(rewritten_path.startswith('/mymisagopath/'))
  22. with self.assertRaises(ValueError):
  23. fileserver.rewrite_file_path('some/non_rewrriten/path.zip')
  24. def test_send_header(self):
  25. """call to header response function returns HttpResponse"""
  26. with self.settings(MISAGO_SENDFILE_HEADER='X-Test'):
  27. response = fileserver.make_header_response(
  28. __file__, 'text/python', 9)
  29. self.assertTrue(isinstance(response, HttpResponse))
  30. self.assertEqual(response['X-Test'], __file__)
  31. def test_send_stream(self):
  32. """call to streaming response function returns StreamingHttpResponse"""
  33. response = fileserver.make_stream_response(__file__, 'text/python', 9)
  34. self.assertTrue(isinstance(response, StreamingHttpResponse))