def test_expand_symlinks_path_case(self): # Ensures that the resulting path case is fixed on case insensitive file # system. fs.symlink('dest', os.path.join(self.cwd, u'link')) fs.mkdir(os.path.join(self.cwd, u'Dest')) fs.open(os.path.join(self.cwd, u'Dest', u'file.txt'), 'w').close() relfile, symlinks = isolated_format._expand_symlinks( self.cwd, u'.') self.assertEqual((u'.', []), (relfile, symlinks)) relfile, symlinks = isolated_format._expand_symlinks( self.cwd, u'link') self.assertEqual((u'Dest', [u'link']), (relfile, symlinks)) relfile, symlinks = isolated_format._expand_symlinks( self.cwd, u'link/File.txt') self.assertEqual((u'Dest/file.txt', [u'link']), (relfile, symlinks))
def test_symlink_input_absolute_path(self): # A symlink is outside of the checkout, it should be treated as a normal # directory. # .../src # .../src/out -> .../tmp/foo # .../tmp # .../tmp/foo src = os.path.join(self.cwd, u'src') src_out = os.path.join(src, u'out') tmp = os.path.join(self.cwd, u'tmp') tmp_foo = os.path.join(tmp, u'foo') fs.mkdir(src) fs.mkdir(tmp) fs.mkdir(tmp_foo) # The problem was that it's an absolute path, so it must be considered a # normal directory. fs.symlink(tmp, src_out) fs.open(os.path.join(tmp_foo, u'bar.txt'), 'w').close() relfile, symlinks = isolated_format._expand_symlinks( src, u'out/foo/bar.txt') self.assertEqual((u'out/foo/bar.txt', []), (relfile, symlinks))