diff --git a/py/path/local/local.py b/py/path/local/local.py index 57f2e2cdb..dc5230cd0 100644 --- a/py/path/local/local.py +++ b/py/path/local/local.py @@ -201,6 +201,10 @@ class LocalPath(common.FSPathBase, PlatformMixin): s2 = s2.lower() return s1 == s2 + def samefile(self, other): + """ return True if other refers to the same stat object as self. """ + return py.std.os.path.samefile(str(self), str(other)) + def open(self, mode='r'): """ return an opened file with the given mode. """ return self._callex(open, self.strpath, mode) diff --git a/py/path/local/testing/test_local.py b/py/path/local/testing/test_local.py index 99cc733e3..fe697134f 100644 --- a/py/path/local/testing/test_local.py +++ b/py/path/local/testing/test_local.py @@ -14,6 +14,11 @@ class LocalSetup: class TestLocalPath(LocalSetup, CommonFSTests): + def test_samefile(self): + assert self.tmpdir.samefile(self.tmpdir) + p = self.tmpdir.ensure("hello") + assert p.samefile(p) + def test_join_normpath(self): assert self.tmpdir.join(".") == self.tmpdir p = self.tmpdir.join("../%s" % self.tmpdir.basename)