[Zope-dev] [Checkins] SVN: zope.app.testing/trunk/ Switch doctests to use the stdlib ``doctest`` module.

Tres Seaver tseaver at palladion.com
Thu Jun 3 15:39:50 EDT 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Adam GROSZER wrote:
> Hello Tres,
> 
> Thursday, June 3, 2010, 5:29:41 PM, you wrote:
> 
> TS> -----BEGIN PGP SIGNED MESSAGE-----
> TS> Hash: SHA1
> 
> TS> Adam GROSZER wrote:
> 
>>>> Log message for revision 110723:
>>>>  Switch doctests to use the stdlib ``doctest`` module.
>>>>
>>>>  o Disuse than the deprecated ``zope.testing.doctest`` variant.
>>>>
>>>>  Remove a duplicated import.
>>>>
>>>>
>>>> Changed:
>>>>  U   zope.app.testing/trunk/CHANGES.txt
>>>>  U   zope.app.testing/trunk/src/zope/app/testing/functional.py
>>>>  U   zope.app.testing/trunk/src/zope/app/testing/tests.py
>>> The problem with this is that it just breaks tests that have accented
>>> unicode characters.
>>>
>>> zope.app.testing.functional.FunctionalDocFileSuite breaks, while
>>> zope.testing.doctest.DocFileSuite works.
>>> I don't remember what was the final decision on deprecating
>>> zope.testing.doctest, but this definitely s*cks.
>>>
>>> Thoughts?
> 
> TS> What tests are breaking?
> 
> Our apps's tests.
> Excerpt is:
> 
> # -*- coding: UTF-8 -*-
> <snip>
>   >>> mail = mailer.prepareEmail(u"Some subject",
>   ...     u"Some body éáÉÁ",
>   ...     u"from at me.com",
>   ...     u"to at you.com")
> <snip>
> 
> With the stdlib doctest prepareEmail gets
> u'Some body \xc3\xa9\xc3\xa1\xc3\x89\xc3\x81'
> Note, it's unicode() and utf-8 encoded at the same time.
> I guess stdlib doctest does not care about # -*- coding: UTF-8 -*-

The stdlib wants any non-ASCII encoding passed to the testsuite
constructor, e.g. (this is from Lib/test/test_doctest.py in Python 2.6)::

   If the tests contain non-ASCII characters, we have to specify which
   encoding the file is encoded with. We do so by using the `encoding`
   parameter:

     >>> suite = doctest.DocFileSuite('test_doctest.txt',
     ...                              'test_doctest2.txt',
     ...                              'test_doctest4.txt',
     ...                              encoding='utf-8')
     >>> suite.run(unittest.TestResult())



Tres.
- --
===================================================================
Tres Seaver          +1 540-429-0999          tseaver at palladion.com
Palladion Software   "Excellence by Design"    http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkwIBQYACgkQ+gerLs4ltQ5CUQCffTlpUV1CAHKF0+KjQr3Bh5ri
590AnizdczOZQDVPval0w490lgfOhkUx
=Ayqa
-----END PGP SIGNATURE-----



More information about the Zope-Dev mailing list