diff options
| author | Aymeric Augustin | 2013-10-18 09:56:18 +0200 |
|---|---|---|
| committer | Aymeric Augustin | 2013-10-18 09:56:18 +0200 |
| commit | f3a2e0b48d97b72cad9c79b48880f2a265be2e2d (patch) | |
| tree | 93e7df3a37e133d5e86aa5f8d05c6f8f71f7887c | |
| parent | 50e3714c6510fc12dc23aed41830b072d55332fe (diff) | |
| download | django-debug-toolbar-f3a2e0b48d97b72cad9c79b48880f2a265be2e2d.tar.bz2 | |
Test that non-ASCII data in sessions works.
Fix #67.
| -rw-r--r-- | tests/tests.py | 12 | ||||
| -rw-r--r-- | tests/urls.py | 1 | ||||
| -rw-r--r-- | tests/views.py | 12 |
3 files changed, 24 insertions, 1 deletions
diff --git a/tests/tests.py b/tests/tests.py index 6e0cd9b..1571800 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -26,6 +26,7 @@ rf = RequestFactory() class BaseTestCase(TestCase): + def setUp(self): request = rf.get('/') response = HttpResponse() @@ -40,6 +41,7 @@ class BaseTestCase(TestCase): class DebugToolbarTestCase(BaseTestCase): + urls = 'tests.urls' def test_middleware(self): @@ -176,8 +178,16 @@ class DebugToolbarTestCase(BaseTestCase): self.assertContains(response, 'LÀTÍN') # template self.assertContains(response, 'djDebug') # toolbar + def test_non_ascii_session(self): + with self.settings(DEBUG=True, INTERNAL_IPS=['127.0.0.1']): + response = self.client.get('/set_session/') + self.assertContains(response, 'où') + if not six.PY3: + self.assertContains(response, 'là') + class DebugToolbarNameFromObjectTest(BaseTestCase): + def test_func(self): def x(): return 1 @@ -196,6 +206,7 @@ class DebugToolbarNameFromObjectTest(BaseTestCase): class SQLPanelTestCase(BaseTestCase): + def test_recording(self): panel = self.toolbar.get_panel(SQLDebugPanel) self.assertEqual(len(panel._queries), 0) @@ -258,6 +269,7 @@ class SQLPanelTestCase(BaseTestCase): class TemplatePanelTestCase(BaseTestCase): + def test_queryset_hook(self): template_panel = self.toolbar.get_panel(TemplateDebugPanel) sql_panel = self.toolbar.get_panel(SQLDebugPanel) diff --git a/tests/urls.py b/tests/urls.py index 4fb51c9..2877e73 100644 --- a/tests/urls.py +++ b/tests/urls.py @@ -13,6 +13,7 @@ from django.contrib import admin admin.autodiscover() urlpatterns = patterns('tests.views', + url(r'^set_session/$', 'set_session'), url(r'^resolving1/(.+)/(.+)/$', 'resolving_view', name='positional-resolving'), url(r'^resolving2/(?P<arg1>.+)/(?P<arg2>.+)/$', 'resolving_view'), url(r'^resolving3/(.+)/$', 'resolving_view', { 'arg2' : 'default' }), diff --git a/tests/views.py b/tests/views.py index f756023..a903bee 100644 --- a/tests/views.py +++ b/tests/views.py @@ -1,7 +1,10 @@ +# coding: utf-8 + from __future__ import unicode_literals from django.contrib.auth.models import User from django.http import HttpResponse +from django.utils import six def execute_sql(request): @@ -9,7 +12,7 @@ def execute_sql(request): return HttpResponse() -def regular_view(request, title='Test'): +def regular_view(request, title): content = '<html><head><title>%s</title><body></body></html>' % title return HttpResponse(content) @@ -17,3 +20,10 @@ def regular_view(request, title='Test'): def resolving_view(request, arg1, arg2): # see test_url_resolving in tests.py return HttpResponse() + + +def set_session(request): + request.session['où'] = 'où' + if not six.PY3: + request.session['là'.encode('utf-8')] = 'là'.encode('utf-8') + return HttpResponse('<html><head><title></title><body></body></html>') |
