summaryrefslogtreecommitdiff
path: root/tests/shortcuts
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2014-11-22 17:52:12 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2014-11-22 17:52:43 +0100
commitbf1bd0fbc9d4920327ad998ad11facf842492e23 (patch)
tree73c5665394ce9c766896cab14aa5aa5d34224ce8 /tests/shortcuts
parentb38637d5813f014fbe3e031253a166c208c387e1 (diff)
Moved tests for render shortcuts to their own app.
Diffstat (limited to 'tests/shortcuts')
-rw-r--r--tests/shortcuts/__init__.py0
-rw-r--r--tests/shortcuts/other_templates/render_dirs_test.html1
-rw-r--r--tests/shortcuts/templates/shortcuts/render_test.html1
-rw-r--r--tests/shortcuts/tests.py71
-rw-r--r--tests/shortcuts/urls.py17
-rw-r--r--tests/shortcuts/views.py81
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))