fn = os.path.join(basedir, path)
fileutil.make_dirs(fn, mode)
- def touch(self, basedir, path, mode=None):
+ def touch(self, basedir, path, mode=None, data="touch\n"):
fn = os.path.join(basedir, path)
f = open(fn, "w")
- f.write("touch\n")
+ f.write(data)
f.close()
if mode is not None:
os.chmod(fn, mode)
fileutil.rename(fn, fn2)
self.failIf(os.path.exists(fn))
self.failUnless(os.path.exists(fn2))
+
+ def test_du(self):
+ basedir = "util/FileUtil/test_du"
+ fileutil.make_dirs(basedir)
+ d = os.path.join(basedir, "space-consuming")
+ self.mkdir(d, "a/b")
+ self.touch(d, "a/b/1.txt", data="a"*10)
+ self.touch(d, "a/b/2.txt", data="b"*11)
+ self.mkdir(d, "a/c")
+ self.touch(d, "a/c/1.txt", data="c"*12)
+ self.touch(d, "a/c/2.txt", data="d"*13)
+
+ used = fileutil.du(basedir)
+ self.failUnlessEqual(10+11+12+13, used)
+
return open(fname, binarymode and "r+b" or "r+")
except EnvironmentError:
return open(fname, binarymode and "w+b" or "w+")
+
+
+def du(basedir):
+ size = 0
+
+ for root, dirs, files in os.walk(basedir):
+ for f in files:
+ fn = os.path.join(root, f)
+ size += os.path.getsize(fn)
+
+ return size