/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_osutils.py

  • Committer: Vincent Ladeuil
  • Date: 2011-11-24 15:48:29 UTC
  • mfrom: (6289 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6337.
  • Revision ID: v.ladeuil+lp@free.fr-20111124154829-avowjpsxdl8yp2vz
merge trunk resolving conflicts

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
from bzrlib.tests.scenarios import load_tests_apply_scenarios
42
42
 
43
43
 
44
 
class _UTF8DirReaderFeature(tests.Feature):
 
44
class _UTF8DirReaderFeature(features.Feature):
45
45
 
46
46
    def _probe(self):
47
47
        try:
54
54
    def feature_name(self):
55
55
        return 'bzrlib._readdir_pyx'
56
56
 
57
 
UTF8DirReaderFeature = _UTF8DirReaderFeature()
 
57
UTF8DirReaderFeature = features.ModuleAvailableFeature('bzrlib._readdir_pyx')
58
58
 
59
 
term_ios_feature = tests.ModuleAvailableFeature('termios')
 
59
term_ios_feature = features.ModuleAvailableFeature('termios')
60
60
 
61
61
 
62
62
def _already_unicode(s):
429
429
class TestLinks(tests.TestCaseInTempDir):
430
430
 
431
431
    def test_dereference_path(self):
432
 
        self.requireFeature(tests.SymlinkFeature)
 
432
        self.requireFeature(features.SymlinkFeature)
433
433
        cwd = osutils.realpath('.')
434
434
        os.mkdir('bar')
435
435
        bar_path = osutils.pathjoin(cwd, 'bar')
482
482
 
483
483
class TestCanonicalRelPath(tests.TestCaseInTempDir):
484
484
 
485
 
    _test_needs_features = [tests.CaseInsCasePresFilenameFeature]
 
485
    _test_needs_features = [features.CaseInsCasePresFilenameFeature]
486
486
 
487
487
    def test_canonical_relpath_simple(self):
488
488
        f = file('MixedCaseName', 'w')
898
898
    """Test win32 functions that create files."""
899
899
 
900
900
    def test_getcwd(self):
901
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
901
        self.requireFeature(features.UnicodeFilenameFeature)
902
902
        os.mkdir(u'mu-\xb5')
903
903
        os.chdir(u'mu-\xb5')
904
904
        # TODO: jam 20060427 This will probably fail on Mac OSX because
994
994
    """Test mac special functions that require directories."""
995
995
 
996
996
    def test_getcwd(self):
997
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
997
        self.requireFeature(features.UnicodeFilenameFeature)
998
998
        os.mkdir(u'B\xe5gfors')
999
999
        os.chdir(u'B\xe5gfors')
1000
1000
        self.assertEndsWith(osutils._mac_getcwd(), u'B\xe5gfors')
1001
1001
 
1002
1002
    def test_getcwd_nonnorm(self):
1003
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1003
        self.requireFeature(features.UnicodeFilenameFeature)
1004
1004
        # Test that _mac_getcwd() will normalize this path
1005
1005
        os.mkdir(u'Ba\u030agfors')
1006
1006
        os.chdir(u'Ba\u030agfors')
1116
1116
        # are not using the filesystem's encoding
1117
1117
 
1118
1118
        # require a bytestring based filesystem
1119
 
        self.requireFeature(tests.ByteStringNamedFilesystem)
 
1119
        self.requireFeature(features.ByteStringNamedFilesystem)
1120
1120
 
1121
1121
        tree = [
1122
1122
            '.bzr',
1217
1217
        self._save_platform_info()
1218
1218
        win32utils.winver = None # Avoid the win32 detection code
1219
1219
        osutils._fs_enc = 'UTF-8'
1220
 
        self.assertDirReaderIs(UTF8DirReaderFeature.reader)
 
1220
        self.assertDirReaderIs(
 
1221
            UTF8DirReaderFeature.module.UTF8DirReader)
1221
1222
 
1222
1223
    def test_force_walkdirs_utf8_fs_ascii(self):
1223
1224
        self.requireFeature(UTF8DirReaderFeature)
1224
1225
        self._save_platform_info()
1225
1226
        win32utils.winver = None # Avoid the win32 detection code
1226
1227
        osutils._fs_enc = 'US-ASCII'
1227
 
        self.assertDirReaderIs(UTF8DirReaderFeature.reader)
 
1228
        self.assertDirReaderIs(
 
1229
            UTF8DirReaderFeature.module.UTF8DirReader)
1228
1230
 
1229
1231
    def test_force_walkdirs_utf8_fs_ANSI(self):
1230
1232
        self.requireFeature(UTF8DirReaderFeature)
1231
1233
        self._save_platform_info()
1232
1234
        win32utils.winver = None # Avoid the win32 detection code
1233
1235
        osutils._fs_enc = 'ANSI_X3.4-1968'
1234
 
        self.assertDirReaderIs(UTF8DirReaderFeature.reader)
 
1236
        self.assertDirReaderIs(
 
1237
            UTF8DirReaderFeature.module.UTF8DirReader)
1235
1238
 
1236
1239
    def test_force_walkdirs_utf8_fs_latin1(self):
1237
1240
        self._save_platform_info()
1255
1258
 
1256
1259
    def test_unicode_walkdirs(self):
1257
1260
        """Walkdirs should always return unicode paths."""
1258
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1261
        self.requireFeature(features.UnicodeFilenameFeature)
1259
1262
        name0 = u'0file-\xb6'
1260
1263
        name1 = u'1dir-\u062c\u0648'
1261
1264
        name2 = u'2file-\u0633'
1298
1301
 
1299
1302
        The abspath portion might be in unicode or utf-8
1300
1303
        """
1301
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1304
        self.requireFeature(features.UnicodeFilenameFeature)
1302
1305
        name0 = u'0file-\xb6'
1303
1306
        name1 = u'1dir-\u062c\u0648'
1304
1307
        name2 = u'2file-\u0633'
1359
1362
 
1360
1363
        The abspath portion should be in unicode
1361
1364
        """
1362
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1365
        self.requireFeature(features.UnicodeFilenameFeature)
1363
1366
        # Use the unicode reader. TODO: split into driver-and-driven unit
1364
1367
        # tests.
1365
1368
        self._save_platform_info()
1406
1409
 
1407
1410
    def test__walkdirs_utf8_win32readdir(self):
1408
1411
        self.requireFeature(test__walkdirs_win32.win32_readdir_feature)
1409
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1412
        self.requireFeature(features.UnicodeFilenameFeature)
1410
1413
        from bzrlib._walkdirs_win32 import Win32ReadDir
1411
1414
        self._save_platform_info()
1412
1415
        osutils._selected_dir_reader = Win32ReadDir()
1463
1466
    def test__walkdirs_utf_win32_find_file_stat_file(self):
1464
1467
        """make sure our Stat values are valid"""
1465
1468
        self.requireFeature(test__walkdirs_win32.win32_readdir_feature)
1466
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1469
        self.requireFeature(features.UnicodeFilenameFeature)
1467
1470
        from bzrlib._walkdirs_win32 import Win32ReadDir
1468
1471
        name0u = u'0file-\xb6'
1469
1472
        name0 = name0u.encode('utf8')
1487
1490
    def test__walkdirs_utf_win32_find_file_stat_directory(self):
1488
1491
        """make sure our Stat values are valid"""
1489
1492
        self.requireFeature(test__walkdirs_win32.win32_readdir_feature)
1490
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1493
        self.requireFeature(features.UnicodeFilenameFeature)
1491
1494
        from bzrlib._walkdirs_win32 import Win32ReadDir
1492
1495
        name0u = u'0dir-\u062c\u0648'
1493
1496
        name0 = name0u.encode('utf8')
1593
1596
        self.assertEqual(['c'], os.listdir('target/b'))
1594
1597
 
1595
1598
    def test_copy_tree_symlinks(self):
1596
 
        self.requireFeature(tests.SymlinkFeature)
 
1599
        self.requireFeature(features.SymlinkFeature)
1597
1600
        self.build_tree(['source/'])
1598
1601
        os.symlink('a/generic/path', 'source/lnk')
1599
1602
        osutils.copy_tree('source', 'target')
1866
1869
        return filtered_dirblocks
1867
1870
 
1868
1871
    def test_walk_unicode_tree(self):
1869
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1872
        self.requireFeature(features.UnicodeFilenameFeature)
1870
1873
        tree, expected_dirblocks = self._get_unicode_tree()
1871
1874
        self.build_tree(tree)
1872
1875
        result = list(osutils._walkdirs_utf8('.'))
1873
1876
        self.assertEqual(expected_dirblocks, self._filter_out(result))
1874
1877
 
1875
1878
    def test_symlink(self):
1876
 
        self.requireFeature(tests.SymlinkFeature)
1877
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1879
        self.requireFeature(features.SymlinkFeature)
 
1880
        self.requireFeature(features.UnicodeFilenameFeature)
1878
1881
        target = u'target\N{Euro Sign}'
1879
1882
        link_name = u'l\N{Euro Sign}nk'
1880
1883
        os.symlink(target, link_name)
1898
1901
    But prior python versions failed to properly encode the passed unicode
1899
1902
    string.
1900
1903
    """
1901
 
    _test_needs_features = [tests.SymlinkFeature, tests.UnicodeFilenameFeature]
 
1904
    _test_needs_features = [features.SymlinkFeature, features.UnicodeFilenameFeature]
1902
1905
 
1903
1906
    def setUp(self):
1904
1907
        super(tests.TestCaseInTempDir, self).setUp()