diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2014-11-22 17:52:12 +0100 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2014-11-22 17:52:43 +0100 |
| commit | bf1bd0fbc9d4920327ad998ad11facf842492e23 (patch) | |
| tree | 73c5665394ce9c766896cab14aa5aa5d34224ce8 /tests/shortcuts | |
| parent | b38637d5813f014fbe3e031253a166c208c387e1 (diff) | |
Moved tests for render shortcuts to their own app.
Diffstat (limited to 'tests/shortcuts')
| -rw-r--r-- | tests/shortcuts/__init__.py | 0 | ||||
| -rw-r--r-- | tests/shortcuts/other_templates/render_dirs_test.html | 1 | ||||
| -rw-r--r-- | tests/shortcuts/templates/shortcuts/render_test.html | 1 | ||||
| -rw-r--r-- | tests/shortcuts/tests.py | 71 | ||||
| -rw-r--r-- | tests/shortcuts/urls.py | 17 | ||||
| -rw-r--r-- | tests/shortcuts/views.py | 81 |
6 files changed, 171 insertions, 0 deletions
diff --git a/tests/shortcuts/__init__.py b/tests/shortcuts/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/shortcuts/__init__.py diff --git a/tests/shortcuts/other_templates/render_dirs_test.html b/tests/shortcuts/other_templates/render_dirs_test.html new file mode 100644 index 0000000000..52a6c1d3a7 --- /dev/null +++ b/tests/shortcuts/other_templates/render_dirs_test.html @@ -0,0 +1 @@ +spam eggs diff --git a/tests/shortcuts/templates/shortcuts/render_test.html b/tests/shortcuts/templates/shortcuts/render_test.html new file mode 100644 index 0000000000..1b2f47a0e3 --- /dev/null +++ b/tests/shortcuts/templates/shortcuts/render_test.html @@ -0,0 +1 @@ +{{ foo }}.{{ bar }}.{{ baz }}.{{ STATIC_URL }} diff --git a/tests/shortcuts/tests.py b/tests/shortcuts/tests.py new file mode 100644 index 0000000000..4835b40797 --- /dev/null +++ b/tests/shortcuts/tests.py @@ -0,0 +1,71 @@ +from django.test import TestCase, override_settings + + +@override_settings( + TEMPLATE_CONTEXT_PROCESSORS=('django.core.context_processors.static',), + STATIC_URL='/path/to/static/media/', + ROOT_URLCONF='shortcuts.urls', +) +class ShortcutTests(TestCase): + + def test_render_to_response(self): + response = self.client.get('/render_to_response/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'FOO.BAR..\n') + self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') + + def test_render_to_response_with_request_context(self): + response = self.client.get('/render_to_response/request_context/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'FOO.BAR../path/to/static/media/\n') + self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') + + def test_render_to_response_with_content_type(self): + response = self.client.get('/render_to_response/content_type/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'FOO.BAR..\n') + self.assertEqual(response['Content-Type'], 'application/x-rendertest') + + def test_render_to_response_with_dirs(self): + response = self.client.get('/render_to_response/dirs/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'spam eggs\n') + self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') + + def test_render(self): + response = self.client.get('/render/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'FOO.BAR../path/to/static/media/\n') + self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') + self.assertEqual(response.context.current_app, None) + + def test_render_with_base_context(self): + response = self.client.get('/render/base_context/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'FOO.BAR..\n') + self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') + + def test_render_with_content_type(self): + response = self.client.get('/render/content_type/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'FOO.BAR../path/to/static/media/\n') + self.assertEqual(response['Content-Type'], 'application/x-rendertest') + + def test_render_with_status(self): + response = self.client.get('/render/status/') + self.assertEqual(response.status_code, 403) + self.assertEqual(response.content, b'FOO.BAR../path/to/static/media/\n') + + def test_render_with_current_app(self): + response = self.client.get('/render/current_app/') + self.assertEqual(response.context.current_app, "foobar_app") + + def test_render_with_dirs(self): + response = self.client.get('/render/dirs/') + self.assertEqual(response.status_code, 200) + self.assertEqual(response.content, b'spam eggs\n') + self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') + + def test_render_with_current_app_conflict(self): + with self.assertRaises(ValueError): + self.client.get('/render/current_app_conflict/') diff --git a/tests/shortcuts/urls.py b/tests/shortcuts/urls.py new file mode 100644 index 0000000000..cd18c8a01b --- /dev/null +++ b/tests/shortcuts/urls.py @@ -0,0 +1,17 @@ +from django.conf.urls import url + +from . import views + +urlpatterns = [ + url(r'^render_to_response/$', views.render_to_response_view), + url(r'^render_to_response/request_context/$', views.render_to_response_view_with_request_context), + url(r'^render_to_response/content_type/$', views.render_to_response_view_with_content_type), + url(r'^render_to_response/dirs/$', views.render_to_response_view_with_dirs), + url(r'^render/$', views.render_view), + url(r'^render/base_context/$', views.render_view_with_base_context), + url(r'^render/content_type/$', views.render_view_with_content_type), + url(r'^render/dirs/$', views.render_with_dirs), + url(r'^render/status/$', views.render_view_with_status), + url(r'^render/current_app/$', views.render_view_with_current_app), + url(r'^render/current_app_conflict/$', views.render_view_with_current_app_conflict), +] diff --git a/tests/shortcuts/views.py b/tests/shortcuts/views.py new file mode 100644 index 0000000000..afae78d4d8 --- /dev/null +++ b/tests/shortcuts/views.py @@ -0,0 +1,81 @@ +import os.path + +from django.shortcuts import render_to_response, render +from django.template import Context, RequestContext +from django.utils._os import upath + + +dirs = (os.path.join(os.path.dirname(upath(__file__)), 'other_templates'),) + + +def render_to_response_view(request): + return render_to_response('shortcuts/render_test.html', { + 'foo': 'FOO', + 'bar': 'BAR', + }) + + +def render_to_response_view_with_request_context(request): + return render_to_response('shortcuts/render_test.html', { + 'foo': 'FOO', + 'bar': 'BAR', + }, context_instance=RequestContext(request)) + + +def render_to_response_view_with_content_type(request): + return render_to_response('shortcuts/render_test.html', { + 'foo': 'FOO', + 'bar': 'BAR', + }, content_type='application/x-rendertest') + + +def render_to_response_view_with_dirs(request): + return render_to_response('render_dirs_test.html', dirs=dirs) + + +def render_view(request): + return render(request, 'shortcuts/render_test.html', { + 'foo': 'FOO', + 'bar': 'BAR', + }) + + +def render_view_with_base_context(request): + return render(request, 'shortcuts/render_test.html', { + 'foo': 'FOO', + 'bar': 'BAR', + }, context_instance=Context()) + + +def render_view_with_content_type(request): + return render(request, 'shortcuts/render_test.html', { + 'foo': 'FOO', + 'bar': 'BAR', + }, content_type='application/x-rendertest') + + +def render_with_dirs(request): + return render(request, 'render_dirs_test.html', dirs=dirs) + + +def render_view_with_status(request): + return render(request, 'shortcuts/render_test.html', { + 'foo': 'FOO', + 'bar': 'BAR', + }, status=403) + + +def render_view_with_current_app(request): + return render(request, 'shortcuts/render_test.html', { + 'foo': 'FOO', + 'bar': 'BAR', + }, current_app="foobar_app") + + +def render_view_with_current_app_conflict(request): + # This should fail because we don't passing both a current_app and + # context_instance: + return render(request, 'shortcuts/render_test.html', { + 'foo': 'FOO', + 'bar': 'BAR', + }, current_app="foobar_app", context_instance=RequestContext(request)) |
