2340
2340
import pywintypes
2341
2341
self.assertTrue(osutils.is_environment_error(
2342
2342
pywintypes.error(errno.EINVAL, "Invalid parameter", "Caller")))
2345
class SupportsExecutableTests(tests.TestCaseInTempDir):
2347
def test_returns_bool(self):
2348
self.assertIsInstance(osutils.supports_executable(self.test_dir), bool)
2351
class SupportsSymlinksTests(tests.TestCaseInTempDir):
2353
def test_returns_bool(self):
2354
self.assertIsInstance(osutils.supports_symlinks(self.test_dir), bool)
2357
class MtabReader(tests.TestCaseInTempDir):
2359
def test_read_mtab(self):
2360
self.build_tree_contents([('mtab', """\
2361
/dev/mapper/blah--vg-root / ext4 rw,relatime,errors=remount-ro 0 0
2362
/dev/mapper/blah--vg-home /home vfat rw,relatime 0 0
2368
list(osutils.read_mtab('mtab')),
2370
(b'/home', 'vfat')])
2373
class GetFsTypeTests(tests.TestCaseInTempDir):
2375
def test_returns_string_or_none(self):
2376
ret = osutils.get_fs_type(self.test_dir)
2377
self.assertTrue(isinstance(ret, text_type) or ret is None)
2379
def test_returns_most_specific(self):
2381
osutils, '_FILESYSTEM_FINDER',
2382
osutils.FilesystemFinder(
2383
[(b'/', 'ext4'), (b'/home', 'vfat'),
2384
(b'/home/jelmer', 'ext2')]))
2385
self.assertEqual(osutils.get_fs_type(b'/home/jelmer/blah'), 'ext2')
2386
self.assertEqual(osutils.get_fs_type('/home/jelmer/blah'), 'ext2')
2387
self.assertEqual(osutils.get_fs_type(b'/home/jelmer'), 'ext2')
2388
self.assertEqual(osutils.get_fs_type(b'/home/martin'), 'vfat')
2389
self.assertEqual(osutils.get_fs_type(b'/home'), 'vfat')
2390
self.assertEqual(osutils.get_fs_type(b'/other'), 'ext4')
2392
def test_returns_none(self):
2394
osutils, '_FILESYSTEM_FINDER',
2395
osutils.FilesystemFinder([]))
2396
self.assertIs(osutils.get_fs_type('/home/jelmer/blah'), None)
2397
self.assertIs(osutils.get_fs_type(b'/home/jelmer/blah'), None)
2398
self.assertIs(osutils.get_fs_type('/home/jelmer'), None)