diff --git a/django_downloadview/tests/__init__.py b/django_downloadview/tests/__init__.py index 0f38c3e..c8896e3 100644 --- a/django_downloadview/tests/__init__.py +++ b/django_downloadview/tests/__init__.py @@ -1,2 +1,18 @@ # -*- coding: utf-8 -*- """Unit tests.""" + + +def setup_view(view, request, *args, **kwargs): + """Mimic as_view() returned callable, but returns view instance. + + ``args`` and ``kwargs`` are the same you would pass to + :func:`~django.core.urlresolvers.reverse`. + + This is an early implementation of + https://code.djangoproject.com/ticket/20456 + + """ + view.request = request + view.args = args + view.kwargs = kwargs + return view diff --git a/django_downloadview/tests/views.py b/django_downloadview/tests/views.py index 6399f8c..12238ee 100644 --- a/django_downloadview/tests/views.py +++ b/django_downloadview/tests/views.py @@ -162,3 +162,18 @@ class DownloadMixinTestCase(unittest.TestCase): mixin.get_file.assert_called_once_with() self.assertEqual(mixin.was_modified_since.call_count, 0) mixin.download_response.assert_called_once_with() + + +class BaseDownloadViewTestCase(unittest.TestCase): + "Tests around :class:`django_downloadviews.views.base.BaseDownloadView`." + def test_get(self): + """BaseDownloadView.get() calls render_to_response().""" + request = django.test.RequestFactory().get('/dummy-url') + args = ['dummy-arg'] + kwargs = {'dummy': 'kwarg'} + view = setup_view(base.BaseDownloadView(), request, *args, **kwargs) + view.render_to_response = mock.Mock( + return_value=mock.sentinel.response) + response = view.get(request, *args, **kwargs) + self.assertIs(response, mock.sentinel.response) + view.render_to_response.assert_called_once_with()