test_fileserver.py 1.8 KB

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