[Zope-dev] Test fixture failure zope.interface under Python 3.1

2010-05-02 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi all (and especially Lennart),

I need a quick sanity check. Trying to test a package of mine for Python
3 compatibility I built Python 3.1.2 and installed distribute into it.
My package depends on zope.interface. I am executing...

  $ python3.1 setup.py test

It tries to install zope.interface, but fails with this traceback:

Running zope.interface-3.6.0/setup.py -q bdist_egg --dist-dir
/var/folders/ZD/ZDGPtbYeGkqB4K7rOkPK4U+++TI/-Tmp-/easy_install-8LJGXC/zope.interface-3.6.0/egg-dist-tmp-xVkH07
Traceback (most recent call last):
  File setup.py, line 58, in module
snip
  File
/usr/local/lib/python3.1/site-packages/distribute-0.6.10-py3.1.egg/setuptools/sandbox.py,
line 33, in lambda
{'__file__':setup_script, '__name__':'__main__'})
  File setup.py, line 80, in module

That's not very informative at all. Trying to debug this further I
download zope.interface 3.6.0 and attempt to run its tests using
setup.py test, which gives a little more information:

Traceback (most recent call last):
  File setup.py, line 80, in module
+ '\n' +
  File setup.py, line 65, in read
return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
  File /usr/local/lib/python3.1/encodings/ascii.py, line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
290: ordinal not in range(128)

The issue is a non-ASCII character in the Changelog:

snip
- - Added support for Python 3.1. Contributors:

Lennart Regebro
Martin v Löwis
Thomas Lotze
Wolfgang Schnerring
/snip

Removing the ö I can run the tests and buildout. Question: Is this an
issue with my particular sandbox? The Python 3.1 I use is a fresh build
and I don't manipulate the default encoding anywhere.

Thanks!

jens

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkvdqjgACgkQRAx5nvEhZLJhpACgunVHthigpkiLO9K4JIskMEYC
MGUAn3ocaSIgdrMJG10szA+Ji/48OLO2
=Vfi3
-END PGP SIGNATURE-
___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Test fixture failure zope.interface under Python 3.1

2010-05-02 Thread Lennart Regebro
On Sun, May 2, 2010 at 18:37, Jens Vagelpohl j...@dataflake.org wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Hi all (and especially Lennart),

 I need a quick sanity check. Trying to test a package of mine for Python
 3 compatibility I built Python 3.1.2 and installed distribute into it.
 My package depends on zope.interface. I am executing...

  $ python3.1 setup.py test

 It tries to install zope.interface, but fails with this traceback:

 Running zope.interface-3.6.0/setup.py -q bdist_egg --dist-dir
 /var/folders/ZD/ZDGPtbYeGkqB4K7rOkPK4U+++TI/-Tmp-/easy_install-8LJGXC/zope.interface-3.6.0/egg-dist-tmp-xVkH07
 Traceback (most recent call last):
  File setup.py, line 58, in module
 snip
  File
 /usr/local/lib/python3.1/site-packages/distribute-0.6.10-py3.1.egg/setuptools/sandbox.py,
 line 33, in lambda
    {'__file__':setup_script, '__name__':'__main__'})
  File setup.py, line 80, in module

 That's not very informative at all. Trying to debug this further I
 download zope.interface 3.6.0 and attempt to run its tests using
 setup.py test, which gives a little more information:

 Traceback (most recent call last):
  File setup.py, line 80, in module
    + '\n' +
  File setup.py, line 65, in read
    return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
  File /usr/local/lib/python3.1/encodings/ascii.py, line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
 290: ordinal not in range(128)

 The issue is a non-ASCII character in the Changelog:

 snip
 - - Added support for Python 3.1. Contributors:

    Lennart Regebro
    Martin v Löwis
    Thomas Lotze
    Wolfgang Schnerring
 /snip

 Removing the ö I can run the tests and buildout. Question: Is this an
 issue with my particular sandbox? The Python 3.1 I use is a fresh build
 and I don't manipulate the default encoding anywhere.

Hmm, I do not get that issue, but maybe the default encoding is
different on different systems? What are you using?

I'll change that to Loewis in any case, having non-ascii test like
that is definitely a no-no. You would think that after 30 years of
these kinds of problems I would have learnt, but apparently not. :)

-- 
Lennart Regebro: Python, Zope, Plone, Grok
http://regebro.wordpress.com/
+33 661 58 14 64
___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Test fixture failure zope.interface under Python 3.1

2010-05-02 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 5/2/10 21:30 , Lennart Regebro wrote:
 On Sun, May 2, 2010 at 18:37, Jens Vagelpohl j...@dataflake.org wrote:
 The issue is a non-ASCII character in the Changelog:

 snip
 - - Added support for Python 3.1. Contributors:

Lennart Regebro
Martin v Löwis
Thomas Lotze
Wolfgang Schnerring
 /snip

 Removing the ö I can run the tests and buildout. Question: Is this an
 issue with my particular sandbox? The Python 3.1 I use is a fresh build
 and I don't manipulate the default encoding anywhere.
 
 Hmm, I do not get that issue, but maybe the default encoding is
 different on different systems? What are you using?

This is on OS X 10.6.3 and sys.getdefaultencoding says UTF-8. It seems
that the call opening the file ends up with a file handle that assumes
the file contains ASCII:

(Pdb) p open(os.path.join(os.path.dirname(__file__), *rnames))
_io.TextIOWrapper name='CHANGES.txt' encoding='US-ASCII'

A little digging[1] tells me the determining factor for this assumed
encoding is the return value of locale.getpreferredencoding, which for
me is ASCII:

 locale.getpreferredencoding()
'US-ASCII'

What does your system say?

jens

[1] http://docs.python.org/py3k/library/functions.html#open
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkvd4foACgkQRAx5nvEhZLKmgACfR97RYPAk5bL8AHDUOrkZoZZO
AFUAoIeXrs2DvQ4cusPOOYjFeTckujbS
=m2pV
-END PGP SIGNATURE-
___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )


Re: [Zope-dev] Test fixture failure zope.interface under Python 3.1

2010-05-02 Thread Lennart Regebro
On Sun, May 2, 2010 at 22:35, Jens Vagelpohl j...@dataflake.org wrote:
 locale.getpreferredencoding()

'UTF-8' on Ubuntu. And I think Windows has something else as well, but
then again Hanno was able to release Windows binaries. Strange that it
didn't fail there. Tres got rid of some warnings when compiling as
well, so it'll be a more polished release all around. :)

-- 
Lennart Regebro: Python, Zope, Plone, Grok
http://regebro.wordpress.com/
+33 661 58 14 64
___
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )