diff options
| author | Tom Christie | 2013-06-27 11:58:34 +0100 | 
|---|---|---|
| committer | Tom Christie | 2013-06-27 11:58:34 +0100 | 
| commit | 96f41fd12d376833a5822918cedcec5e74d59d02 (patch) | |
| tree | c30ece66827ccc715f522fe7847a75a0518df19e | |
| parent | 4d22a65e78432a2aa70ddc80395a014a7c9e299e (diff) | |
| download | django-rest-framework-96f41fd12d376833a5822918cedcec5e74d59d02.tar.bz2 | |
Use imported views to expose python 2.6 bug. Refs #943
| -rw-r--r-- | rest_framework/tests/description.py | 26 | ||||
| -rw-r--r-- | rest_framework/tests/test_description.py | 26 | 
2 files changed, 29 insertions, 23 deletions
diff --git a/rest_framework/tests/description.py b/rest_framework/tests/description.py new file mode 100644 index 00000000..b46d7f54 --- /dev/null +++ b/rest_framework/tests/description.py @@ -0,0 +1,26 @@ +# -- coding: utf-8 -- + +# Apparently there is a python 2.6 issue where docstrings of imported view classes +# do not retain their encoding information even if a module has a proper +# encoding declaration at the top of its source file. Therefore for tests +# to catch unicode related errors, a mock view has to be declared in a separate +# module. + +from rest_framework.views import APIView + + +# test strings snatched from http://www.columbia.edu/~fdc/utf8/, +# http://winrus.com/utf8-jap.htm and memory +UTF8_TEST_DOCSTRING = ( +    'zażółć gęślą jaźń' +    'Sîne klâwen durh die wolken sint geslagen' +    'Τη γλώσσα μου έδωσαν ελληνική' +    'யாமறிந்த மொழிகளிலே தமிழ்மொழி' +    'На берегу пустынных волн' +    'てすと' +    'アイウエオカキクケコサシスセソタチツテ' +) + + +class ViewWithNonASCIICharactersInDocstring(APIView): +    __doc__ = UTF8_TEST_DOCSTRING diff --git a/rest_framework/tests/test_description.py b/rest_framework/tests/test_description.py index ea4b2c3a..8019f5ec 100644 --- a/rest_framework/tests/test_description.py +++ b/rest_framework/tests/test_description.py @@ -2,8 +2,10 @@  from __future__ import unicode_literals  from django.test import TestCase -from rest_framework.views import APIView  from rest_framework.compat import apply_markdown, smart_text +from rest_framework.views import APIView +from rest_framework.tests.description import ViewWithNonASCIICharactersInDocstring +from rest_framework.tests.description import UTF8_TEST_DOCSTRING  from rest_framework.utils.formatting import get_view_name, get_view_description  # We check that docstrings get nicely un-indented. @@ -49,28 +51,6 @@ MARKED_DOWN_gte_21 = """<h2 id="an-example-docstring">an example docstring</h2>  <h2 id="hash-style-header">hash style header</h2>""" -# test strings snatched from http://www.columbia.edu/~fdc/utf8/, -# http://winrus.com/utf8-jap.htm and memory -UTF8_TEST_DOCSTRING = ( -    'zażółć gęślą jaźń' -    'Sîne klâwen durh die wolken sint geslagen' -    'Τη γλώσσα μου έδωσαν ελληνική' -    'யாமறிந்த மொழிகளிலே தமிழ்மொழி' -    'На берегу пустынных волн' -    'てすと' -    'アイウエオカキクケコサシスセソタチツテ' -) - - -# Apparently there is an issue where docstrings of imported view classes -# do not retain their encoding information even if a module has a proper -# encoding declaration at the top of its source file. Therefore for tests -# to catch unicode related errors, a mock view has to be declared in a separate -# module. -class ViewWithNonASCIICharactersInDocstring(APIView): -    __doc__ = UTF8_TEST_DOCSTRING - -  class TestViewNamesAndDescriptions(TestCase):      def test_view_name_uses_class_name(self):          """  | 
