From 4bab676316cd506e4bf8347d04c894edbd205380 Mon Sep 17 00:00:00 2001 From: Ramakrishnan Muthukrishnan Date: Wed, 12 Aug 2015 14:13:13 +0530 Subject: [PATCH 1/4] 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 8cca7b5e7..a2fa3b898 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): From d36521997e0a8437b2be0c9e55132721686e1f89 Mon Sep 17 00:00:00 2001 From: Ramakrishnan Muthukrishnan Date: Wed, 12 Aug 2015 14:26:52 +0530 Subject: [PATCH 2/4] add more tests for get_pathinfo() When operating on a file, test if the "file" is not a directory or a symlink. Likewise for directory and symlink. --- src/allmydata/test/test_util.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/allmydata/test/test_util.py b/src/allmydata/test/test_util.py index a2fa3b898..7f376314a 100644 --- a/src/allmydata/test/test_util.py +++ b/src/allmydata/test/test_util.py @@ -644,6 +644,8 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase): dirinfo = fileutil.get_pathinfo(d) self.failUnlessTrue(dirinfo.isdir) self.failUnlessTrue(dirinfo.exists) + self.failUnlessFalse(dirinfo.isfile) + self.failUnlessFalse(dirinfo.islink) # create a file under the directory f = os.path.join(d, "a/1.txt") @@ -651,6 +653,8 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase): fileinfo = fileutil.get_pathinfo(f) self.failUnlessTrue(fileinfo.isfile) self.failUnlessTrue(fileinfo.exists) + self.failUnlessFalse(fileinfo.isdir) + self.failUnlessFalse(fileinfo.islink) self.failUnlessEqual(fileinfo.size, 10) # create a simlink under the directory a pointing to 1.txt @@ -659,6 +663,8 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase): symlinkinfo = fileutil.get_pathinfo(slname) self.failUnlessTrue(symlinkinfo.islink) self.failUnlessTrue(symlinkinfo.exists) + self.failUnlessFalse(symlinkinfo.isfile) + self.failUnlessFalse(symlinkinfo.isdir) class PollMixinTests(unittest.TestCase): From e49d76f68d0d3a8449a2649f6a941e8812ed180c Mon Sep 17 00:00:00 2001 From: Ramakrishnan Muthukrishnan Date: Wed, 12 Aug 2015 14:32:40 +0530 Subject: [PATCH 3/4] test_get_pathinfo: rename the identifier d to testdir d, by convention, is used for the Twisted Deferred objects. --- src/allmydata/test/test_util.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/allmydata/test/test_util.py b/src/allmydata/test/test_util.py index 7f376314a..c3fcc65c3 100644 --- a/src/allmydata/test/test_util.py +++ b/src/allmydata/test/test_util.py @@ -637,19 +637,19 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase): def test_get_pathinfo(self): basedir = "util/FileUtil/test_get_pathinfo" fileutil.make_dirs(basedir) - d = os.path.join(basedir, "foobar") + testdir = os.path.join(basedir, "foobar") # create a directory - self.mkdir(d, "a") - dirinfo = fileutil.get_pathinfo(d) + self.mkdir(testdir, "a") + dirinfo = fileutil.get_pathinfo(testdir) self.failUnlessTrue(dirinfo.isdir) self.failUnlessTrue(dirinfo.exists) self.failUnlessFalse(dirinfo.isfile) self.failUnlessFalse(dirinfo.islink) # create a file under the directory - f = os.path.join(d, "a/1.txt") - self.touch(d, "a/1.txt", data="a"*10) + f = os.path.join(testdir, "a/1.txt") + self.touch(testdir, "a/1.txt", data="a"*10) fileinfo = fileutil.get_pathinfo(f) self.failUnlessTrue(fileinfo.isfile) self.failUnlessTrue(fileinfo.exists) @@ -657,8 +657,8 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase): self.failUnlessFalse(fileinfo.islink) self.failUnlessEqual(fileinfo.size, 10) - # create a simlink under the directory a pointing to 1.txt - slname = os.path.join(d, "a/linkto1.txt") + # create a symlink under the directory a pointing to 1.txt + slname = os.path.join(testdir, "a/linkto1.txt") os.symlink(f, slname) symlinkinfo = fileutil.get_pathinfo(slname) self.failUnlessTrue(symlinkinfo.islink) From 8adc28bb9d882afd77cd574b50aece2fc9d35ade Mon Sep 17 00:00:00 2001 From: Ramakrishnan Muthukrishnan Date: Wed, 12 Aug 2015 15:17:27 +0530 Subject: [PATCH 4/4] test_get_pathinfo: testdir is unnecessary Use basedir itself, instead of creating another directory inside basedir. --- src/allmydata/test/test_util.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/allmydata/test/test_util.py b/src/allmydata/test/test_util.py index c3fcc65c3..b34d12b0a 100644 --- a/src/allmydata/test/test_util.py +++ b/src/allmydata/test/test_util.py @@ -637,19 +637,18 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase): def test_get_pathinfo(self): basedir = "util/FileUtil/test_get_pathinfo" fileutil.make_dirs(basedir) - testdir = os.path.join(basedir, "foobar") # create a directory - self.mkdir(testdir, "a") - dirinfo = fileutil.get_pathinfo(testdir) + self.mkdir(basedir, "a") + dirinfo = fileutil.get_pathinfo(basedir) self.failUnlessTrue(dirinfo.isdir) self.failUnlessTrue(dirinfo.exists) self.failUnlessFalse(dirinfo.isfile) self.failUnlessFalse(dirinfo.islink) # create a file under the directory - f = os.path.join(testdir, "a/1.txt") - self.touch(testdir, "a/1.txt", data="a"*10) + f = os.path.join(basedir, "a/1.txt") + self.touch(basedir, "a/1.txt", data="a"*10) fileinfo = fileutil.get_pathinfo(f) self.failUnlessTrue(fileinfo.isfile) self.failUnlessTrue(fileinfo.exists) @@ -658,7 +657,7 @@ class FileUtil(ReallyEqualMixin, unittest.TestCase): self.failUnlessEqual(fileinfo.size, 10) # create a symlink under the directory a pointing to 1.txt - slname = os.path.join(testdir, "a/linkto1.txt") + slname = os.path.join(basedir, "a/linkto1.txt") os.symlink(f, slname) symlinkinfo = fileutil.get_pathinfo(slname) self.failUnlessTrue(symlinkinfo.islink)