def test_convert_utilities(tmpdir): import pydevd_file_utils import sys test_dir = str(tmpdir.mkdir("Test_Convert_Utilities")) if sys.platform == 'win32': normalized = pydevd_file_utils.normcase(test_dir) assert isinstance(normalized, str) # bytes on py2, unicode on py3 assert normalized.lower() == normalized assert '~' not in normalized assert '~' in pydevd_file_utils.convert_to_short_pathname(normalized) real_case = pydevd_file_utils.get_path_with_real_case(normalized) assert isinstance(real_case, str) # bytes on py2, unicode on py3 # Note test_dir itself cannot be compared with because pytest may # have passed the case normalized. assert real_case.endswith("Test_Convert_Utilities") else: # On other platforms, nothing should change assert pydevd_file_utils.normcase(test_dir) == test_dir assert pydevd_file_utils.convert_to_short_pathname( test_dir) == test_dir assert pydevd_file_utils.get_path_with_real_case(test_dir) == test_dir
def test_convert_utilities(tmpdir): import pydevd_file_utils test_dir = str(tmpdir.mkdir("Test_Convert_Utilities")) if IS_WINDOWS: normalized = pydevd_file_utils.normcase(test_dir) assert isinstance(normalized, str) # bytes on py2, unicode on py3 assert normalized.lower() == normalized upper_version = os.path.join(test_dir, 'ÁÉÍÓÚ') with open(upper_version, 'w') as stream: stream.write('test') with open(upper_version, 'r') as stream: assert stream.read() == 'test' with open(pydevd_file_utils.normcase(upper_version), 'r') as stream: assert stream.read() == 'test' assert '~' not in normalized for i in range(3): # Check if cache is ok. if i == 2: pydevd_file_utils._listdir_cache.clear() assert pydevd_file_utils.get_path_with_real_case('<does not EXIST>') == '<does not EXIST>' real_case = pydevd_file_utils.get_path_with_real_case(normalized) assert isinstance(real_case, str) # bytes on py2, unicode on py3 # Note test_dir itself cannot be compared with because pytest may # have passed the case normalized. assert real_case.endswith("Test_Convert_Utilities") if i == 2: # Check that we have the expected paths in the cache. assert pydevd_file_utils._listdir_cache[os.path.dirname(normalized).lower()] == ['Test_Convert_Utilities'] assert pydevd_file_utils._listdir_cache[(os.path.dirname(normalized).lower(), 'Test_Convert_Utilities'.lower())] == real_case if IS_PY2: # Test with unicode in python 2 too. real_case = pydevd_file_utils.get_path_with_real_case(normalized.decode( getfilesystemencoding())) assert isinstance(real_case, str) # bytes on py2, unicode on py3 # Note test_dir itself cannot be compared with because pytest may # have passed the case normalized. assert real_case.endswith("Test_Convert_Utilities") # Check that it works with a shortened path. shortened = pydevd_file_utils.convert_to_short_pathname(normalized) assert '~' in shortened with_real_case = pydevd_file_utils.get_path_with_real_case(shortened) assert with_real_case.endswith('Test_Convert_Utilities') assert '~' not in with_real_case else: # On other platforms, nothing should change assert pydevd_file_utils.normcase(test_dir) == test_dir assert pydevd_file_utils.get_path_with_real_case(test_dir) == test_dir
def test_convert_utilities(tmpdir): import pydevd_file_utils test_dir = str(tmpdir.mkdir("Test_Convert_Utilities")) if IS_WINDOWS: normalized = pydevd_file_utils.normcase(test_dir) assert isinstance(normalized, str) # bytes on py2, unicode on py3 assert normalized.lower() == normalized upper_version = os.path.join(test_dir, 'ÁÉÍÓÚ') with open(upper_version, 'w') as stream: stream.write('test') with open(upper_version, 'r') as stream: assert stream.read() == 'test' with open(pydevd_file_utils.normcase(upper_version), 'r') as stream: assert stream.read() == 'test' assert '~' not in normalized if not IS_JYTHON: assert '~' in pydevd_file_utils.convert_to_short_pathname( normalized) real_case = pydevd_file_utils.get_path_with_real_case(normalized) assert isinstance(real_case, str) # bytes on py2, unicode on py3 # Note test_dir itself cannot be compared with because pytest may # have passed the case normalized. assert real_case.endswith("Test_Convert_Utilities") else: # On other platforms, nothing should change assert pydevd_file_utils.normcase(test_dir) == test_dir assert pydevd_file_utils.convert_to_short_pathname( test_dir) == test_dir assert pydevd_file_utils.get_path_with_real_case(test_dir) == test_dir