Rev 3561: Cleanup the tests a bit, and add a test that we downgrade if os.name isn't 'nt' in http://bzr.arbash-meinel.com/branches/bzr/1.6-dev/win32_find_files
John Arbash Meinel
john at arbash-meinel.com
Thu Jul 17 16:21:42 BST 2008
At http://bzr.arbash-meinel.com/branches/bzr/1.6-dev/win32_find_files
------------------------------------------------------------
revno: 3561
revision-id: john at arbash-meinel.com-20080717152134-8xz1wvbu47mhc1oe
parent: john at arbash-meinel.com-20080717151458-1qou6e4hkyr309f7
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: win32_find_files
timestamp: Thu 2008-07-17 10:21:34 -0500
message:
Cleanup the tests a bit, and add a test that we downgrade if os.name isn't 'nt'
-------------- next part --------------
=== modified file 'bzrlib/osutils.py'
--- a/bzrlib/osutils.py 2008-07-17 15:14:58 +0000
+++ b/bzrlib/osutils.py 2008-07-17 15:21:34 +0000
@@ -1198,7 +1198,12 @@
global _real_walkdirs_utf8
if _real_walkdirs_utf8 is None:
fs_encoding = _fs_enc.upper()
- if sys.platform == 'win32':
+ if sys.platform == 'win32' and os.name == 'nt':
+ # Win98 doesn't have unicode apis like FindFirstFileW
+ # TODO: We possibly could support Win98 by falling back to the
+ # original FindFirstFile, and using TCHAR instead of WCHAR,
+ # but that gets a bit tricky, and requires custom compiling
+ # for win98 anyway.
try:
from bzrlib._walkdirs_win32 import _walkdirs_utf8_win32_find_file
except ImportError:
=== modified file 'bzrlib/tests/test_osutils.py'
--- a/bzrlib/tests/test_osutils.py 2008-07-17 15:14:58 +0000
+++ b/bzrlib/tests/test_osutils.py 2008-07-17 15:21:34 +0000
@@ -843,50 +843,62 @@
def _save_platform_info(self):
cur_platform = sys.platform
+ cur_os_name = os.name
cur_fs_enc = osutils._fs_enc
cur_real_walkdirs_utf8 = osutils._real_walkdirs_utf8
def restore():
sys.platform = cur_platform
+ os.name = cur_os_name
osutils._fs_enc = cur_fs_enc
osutils._real_walkdirs_utf8 = cur_real_walkdirs_utf8
self.addCleanup(restore)
- def test__force_walkdirs_utf8_fs_utf8(self):
+ def assertWalkdirsUtf8Is(self, expected):
+ """Assert the right implementation for _walkdirs_utf8 is chosen."""
+ # Force it to redetect
+ osutils._real_walkdirs_utf8 = None
+ # Nothing to list, but should still trigger the selection logic
+ list(osutils._walkdirs_utf8('.'))
+ self.assertIs(expected, osutils._real_walkdirs_utf8)
+
+ def test_force_walkdirs_utf8_fs_utf8(self):
self._save_platform_info()
sys.platform = 'not-win32' # Avoid the win32 detection code
osutils._fs_enc = 'UTF-8'
- osutils._real_walkdirs_utf8 = None # Force a redetect
- # Nothing to list, but should still trigger the selection logic
- list(osutils._walkdirs_utf8('.'))
- self.assertIs(osutils._walkdirs_fs_utf8, osutils._real_walkdirs_utf8)
+ self.assertWalkdirsUtf8Is(osutils._walkdirs_fs_utf8)
- def test__force_walkdirs_utf8_fs_ascii(self):
+ def test_force_walkdirs_utf8_fs_ascii(self):
self._save_platform_info()
sys.platform = 'not-win32' # Avoid the win32 detection code
osutils._fs_enc = 'US-ASCII'
- osutils._real_walkdirs_utf8 = None # Force a redetect
- # Nothing to list, but should still trigger the selection logic
- list(osutils._walkdirs_utf8('.'))
- self.assertIs(osutils._walkdirs_fs_utf8, osutils._real_walkdirs_utf8)
+ self.assertWalkdirsUtf8Is(osutils._walkdirs_fs_utf8)
- def test__force_walkdirs_utf8_fs_ANSI(self):
+ def test_force_walkdirs_utf8_fs_ANSI(self):
self._save_platform_info()
sys.platform = 'not-win32' # Avoid the win32 detection code
osutils._fs_enc = 'ANSI_X3.4-1968'
- osutils._real_walkdirs_utf8 = None # Force a redetect
- # Nothing to list, but should still trigger the selection logic
- list(osutils._walkdirs_utf8('.'))
- self.assertIs(osutils._walkdirs_fs_utf8, osutils._real_walkdirs_utf8)
+ self.assertWalkdirsUtf8Is(osutils._walkdirs_fs_utf8)
- def test__force_walkdirs_utf8_fs_latin1(self):
+ def test_force_walkdirs_utf8_fs_latin1(self):
self._save_platform_info()
sys.platform = 'not-win32' # Avoid the win32 detection code
osutils._fs_enc = 'latin1'
- osutils._real_walkdirs_utf8 = None # Force a redetect
- # Nothing to list, but should still trigger the selection logic
- list(osutils._walkdirs_utf8('.'))
- self.assertIs(osutils._walkdirs_unicode_to_utf8,
- osutils._real_walkdirs_utf8)
+ self.assertWalkdirsUtf8Is(osutils._walkdirs_unicode_to_utf8)
+
+ def test_force_walkdirs_utf8_nt(self):
+ self.requireFeature(WalkdirsWin32Feature)
+ self._save_platform_info()
+ sys.platform = 'win32'
+ os.name = 'nt'
+ from bzrlib._walkdirs_win32 import _walkdirs_utf8_win32_find_file
+ self.assertWalkdirsUtf8Is(_walkdirs_utf8_win32_find_file)
+
+ def test_force_walkdirs_utf8_nt(self):
+ self.requireFeature(WalkdirsWin32Feature)
+ self._save_platform_info()
+ sys.platform = 'win32'
+ os.name = 'NOT-nt'
+ self.assertWalkdirsUtf8Is(osutils._walkdirs_unicode_to_utf8)
def test_unicode_walkdirs(self):
"""Walkdirs should always return unicode paths."""
More information about the bazaar-commits
mailing list