[py3] Fixed the str tests.

These tests don't look very meaningful. They were ported from
doctests...
This commit is contained in:
Aymeric Augustin 2012-08-16 09:44:00 +02:00
parent 71d07fb048
commit e98cb05edf
1 changed files with 13 additions and 4 deletions

View File

@ -4,23 +4,32 @@ from __future__ import absolute_import, unicode_literals
import datetime import datetime
from django.test import TestCase from django.test import TestCase
from django.utils import six
from django.utils.unittest import skipIf
from .models import Article, InternationalArticle from .models import Article, InternationalArticle
class SimpleTests(TestCase): class SimpleTests(TestCase):
@skipIf(six.PY3, "tests a __str__ method returning unicode under Python 2")
def test_basic(self): def test_basic(self):
a = Article.objects.create( a = Article.objects.create(
headline=b'Area man programs in Python', headline=b'Area man programs in Python',
pub_date=datetime.datetime(2005, 7, 28) pub_date=datetime.datetime(2005, 7, 28)
) )
self.assertEqual(str(a), b'Area man programs in Python') self.assertEqual(str(a), str('Area man programs in Python'))
self.assertEqual(repr(a), b'<Article: Area man programs in Python>') self.assertEqual(repr(a), str('<Article: Area man programs in Python>'))
def test_international(self): def test_international(self):
a = InternationalArticle.objects.create( a = InternationalArticle.objects.create(
headline='Girl wins €12.500 in lottery', headline='Girl wins €12.500 in lottery',
pub_date=datetime.datetime(2005, 7, 28) pub_date=datetime.datetime(2005, 7, 28)
) )
# The default str() output will be the UTF-8 encoded output of __unicode__(). if six.PY3:
self.assertEqual(str(a), b'Girl wins \xe2\x82\xac12.500 in lottery') self.assertEqual(str(a), 'Girl wins €12.500 in lottery')
else:
# On Python 2, the default str() output will be the UTF-8 encoded
# output of __unicode__() -- or __str__() when the
# python_2_unicode_compatible decorator is used.
self.assertEqual(str(a), b'Girl wins \xe2\x82\xac12.500 in lottery')