mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-01-18 18:56:28 +00:00
fileutil: add du() function
This commit is contained in:
parent
c4a8db3eb2
commit
9ddb929651
@ -276,10 +276,10 @@ class FileUtil(unittest.TestCase):
|
||||
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)
|
||||
@ -358,3 +358,18 @@ class FileUtil(unittest.TestCase):
|
||||
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)
|
||||
|
||||
|
@ -184,3 +184,14 @@ def open_or_create(fname, binarymode=True):
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user