def test_resolve_one_level(self): tmp1 = self.make_temp_file(suffix = '-one') tmp2 = self.make_temp_file(suffix = '-two') file_util.remove(tmp2) os.symlink(tmp1, tmp2) self.assertEqual( tmp1, file_symlink.resolve(tmp1) ) self.assertEqual( tmp1, file_symlink.resolve(tmp2) )
def test_resolve_cyclic_error(self): tmp1 = self.make_temp_file(suffix = '-one') tmp2 = self.make_temp_file(suffix = '-two') file_util.remove(tmp2) os.symlink(tmp1, tmp2) file_util.remove(tmp1) os.symlink(tmp2, tmp1) with self.assertRaises(IOError) as ctx: file_symlink.resolve(tmp1) self.assertTrue( 'Cyclic error' in str(ctx.exception) )
def test_resolve_two_levels(self): tmp1 = self.make_temp_file() tmp2 = self.make_temp_file() tmp3 = self.make_temp_file() file_util.remove(tmp2) file_util.remove(tmp3) os.symlink(tmp1, tmp2) os.symlink(tmp2, tmp3) self.assertEqual( tmp1, file_symlink.resolve(tmp1) ) self.assertEqual( tmp1, file_symlink.resolve(tmp2) ) self.assertEqual( tmp1, file_symlink.resolve(tmp3) )
def _source_is_brew(clazz, exe): 'Return True if python executable is from brew' # First check the exe itself to see if its in the brew "cellar" actual_exe = file_symlink.resolve(exe) if 'cellar' in actual_exe.lower(): return True # Next check the exe prefix standard to brew to check if that is in the brew "cellar" if actual_exe.startswith('/usr/local/opt/python@'): parts = file_path.split(actual_exe) prefix = file_path.join(parts[0:5]) actual_prefix = file_symlink.resolve(prefix) if 'cellar' in actual_prefix.lower(): return True return False
def _make_info(clazz, exe): main_exe, exe_links = clazz._determine_main_exe_and_links(exe) from .python_installation import python_installation piv = python_installation(main_exe) sys_executable = python_script.sys_executable(main_exe) real_executable = file_symlink.resolve(sys_executable) source = python_source.exe_source(main_exe) version = clazz.version(main_exe) full_version = clazz.full_version(main_exe) return python_exe_info(main_exe, full_version, source, sys_executable, real_executable, exe_links, piv.pip_exe)
def _make_read_only_temp_file(self): from bes.fs.file_util import file_util tmp = self._make_temp_file('this is foo\n') print('B4: tmp={} mode={}'.format(tmp, file_util.mode(tmp))) import os # os.chmod(tmp, stat.S_IREAD) os.chmod(tmp, 0o0400) print('AF: tmp={} mode={}'.format(tmp, file_util.mode(tmp))) return tmp if host.is_unix(): return file_symlink.resolve('/bin/sh') elif host.is_windows(): return r'C:\Windows\System32\cmd.exe' else: host.raise_unsupported_system()
def test_is_binary_unix(self): self.assertTrue(file_mime.is_binary(file_symlink.resolve('/bin/sh')))