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>') | 
