From 4bab676316cd506e4bf8347d04c894edbd205380 Mon Sep 17 00:00:00 2001
From: Ramakrishnan Muthukrishnan <ram@leastauthority.com>
Date: Wed, 12 Aug 2015 14:13:13 +0530
Subject: [PATCH] Add test for get_pathinfo()

---
 src/allmydata/test/test_util.py | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/src/allmydata/test/test_util.py b/src/allmydata/test/test_util.py
index 8cca7b5e..a2fa3b89 100644
--- a/src/allmydata/test/test_util.py
+++ b/src/allmydata/test/test_util.py
@@ -634,6 +634,32 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase):
         disk = fileutil.get_disk_stats('.', 2**128)
         self.failUnlessEqual(disk['avail'], 0)
 
+    def test_get_pathinfo(self):
+        basedir = "util/FileUtil/test_get_pathinfo"
+        fileutil.make_dirs(basedir)
+        d = os.path.join(basedir, "foobar")
+
+        # create a directory
+        self.mkdir(d, "a")
+        dirinfo = fileutil.get_pathinfo(d)
+        self.failUnlessTrue(dirinfo.isdir)
+        self.failUnlessTrue(dirinfo.exists)
+
+        # create a file under the directory
+        f = os.path.join(d, "a/1.txt")
+        self.touch(d, "a/1.txt", data="a"*10)
+        fileinfo = fileutil.get_pathinfo(f)
+        self.failUnlessTrue(fileinfo.isfile)
+        self.failUnlessTrue(fileinfo.exists)
+        self.failUnlessEqual(fileinfo.size, 10)
+
+        # create a simlink under the directory a pointing to 1.txt
+        slname = os.path.join(d, "a/linkto1.txt")
+        os.symlink(f, slname)
+        symlinkinfo = fileutil.get_pathinfo(slname)
+        self.failUnlessTrue(symlinkinfo.islink)
+        self.failUnlessTrue(symlinkinfo.exists)
+
 
 class PollMixinTests(unittest.TestCase):
     def setUp(self):
-- 
2.45.2