@@ -450,7 +450,7 @@ def test_make_path_posix():
450450 assert "/" in make_path_posix ("rel\\ path" , sep = "\\ " )
451451
452452
453- def test_links (tmpdir ):
453+ def test_linked_files (tmpdir ):
454454 tmpdir = str (tmpdir )
455455 fn0 = os .path .join (tmpdir , "target" )
456456 fn1 = os .path .join (tmpdir , "link1" )
@@ -469,8 +469,12 @@ def test_links(tmpdir):
469469
470470 fs = LocalFileSystem ()
471471 assert fs .info (fn0 )["type" ] == "file"
472- assert fs .info (fn1 )["type" ] == "link"
473- assert fs .info (fn2 )["type" ] == "link"
472+ assert fs .info (fn1 )["type" ] == "file"
473+ assert fs .info (fn2 )["type" ] == "file"
474+
475+ assert not fs .info (fn0 )["islink" ]
476+ assert fs .info (fn1 )["islink" ]
477+ assert fs .info (fn2 )["islink" ]
474478
475479 assert fs .info (fn0 )["size" ] == len (data )
476480 assert fs .info (fn1 )["size" ] == len (data )
@@ -485,6 +489,34 @@ def test_links(tmpdir):
485489 assert f .read () == data
486490
487491
492+ def test_linked_directories (tmpdir ):
493+ tmpdir = str (tmpdir )
494+
495+ subdir0 = os .path .join (tmpdir , "target" )
496+ subdir1 = os .path .join (tmpdir , "link1" )
497+ subdir2 = os .path .join (tmpdir , "link2" )
498+
499+ os .makedirs (subdir0 )
500+
501+ try :
502+ os .symlink (subdir0 , subdir1 )
503+ os .symlink (subdir0 , subdir2 )
504+ except OSError :
505+ if WIN :
506+ pytest .xfail ("Ran on win without admin permissions" )
507+ else :
508+ raise
509+
510+ fs = LocalFileSystem ()
511+ assert fs .info (subdir0 )["type" ] == "directory"
512+ assert fs .info (subdir1 )["type" ] == "directory"
513+ assert fs .info (subdir2 )["type" ] == "directory"
514+
515+ assert not fs .info (subdir0 )["islink" ]
516+ assert fs .info (subdir1 )["islink" ]
517+ assert fs .info (subdir2 )["islink" ]
518+
519+
488520def test_isfilestore ():
489521 fs = LocalFileSystem (auto_mkdir = False )
490522 assert fs ._isfilestore ()
0 commit comments