test_nonascii: two unicode a's (was: Re: win32 selftest results)
Wouter van Heyst
larstiq at larstiq.dyndns.org
Sun Jul 2 12:27:03 BST 2006
On Sun, Jul 02, 2006 at 02:20:05PM +0300, Alexander Belchenko wrote:
> Alexander Belchenko пишет:
> >----------------------------------------------------------------------
> >Traceback (most recent call last):
> > File
> >"E:\work\MyCode\bzr\devel\jam.win32\bzrlib\tests\test_nonascii.py", line
> >80, in test_platform
> > self.assertEqual(expected, present)
> >AssertionError: [u'\xe4', u'\xe5', u'\u017d'] != [u'\xe4', u'\u017d']
>
>
> I'm very surprised why another test is passed:
> test_nonascii.UnicodeFilename.test_access
>
> I'm run selftest with --keep-output to look into test directories. And
> this is *funniest* thing ever! In directory actually 2 files instead of
> 3. And test_access *passing*. Yes-yes-yes: it passing.
>
> So I run python interpreter in this directory and saw this:
>
> >>> import os
> >>> os.getcwd()
> 'E:\\work\\MyCode\\bzr\\devel\\jam.win32\\test0000.tmp\\test_nonascii.UnicodeFilename.test_access'
> >>> os.listdir('.')
> ['a', 'Z']
> >>> os.listdir(u'.')
> [u'\xe4', u'\u017d']
> >>> file(u'\xe4').read()
> 'contents of \xc3\xa4\n'
> >>> file(u'\xe5').read()
> 'contents of \xc3\xa4\n'
>
> It's looks like Windows or Python convert unicode filenames to plain
> string form and then back. I don't understand how and why. I never seen
> this before.
>
> One note: both this unicode a (with dots and with circle) cannot be
> represented in russian character set. So maybe here is root of problem?
That, or perhaps FAT32 can't deal with it?
Wouter van Heyst
More information about the bazaar
mailing list