Skip to content

Commit

Permalink
Added more tests for more chainable methods
Browse files Browse the repository at this point in the history
  • Loading branch information
jaraco committed Nov 14, 2012
1 parent 574885f commit fe95177
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
3 changes: 3 additions & 0 deletions path.py
Expand Up @@ -932,13 +932,15 @@ def renames(self, new):

def mkdir(self, mode=0777):
os.mkdir(self, mode)
return self

def mkdir_p(self, mode=0777):
try:
self.mkdir(mode)
except OSError, e:
if e.errno != errno.EEXIST:
raise
return self

def makedirs(self, mode=0777):
os.makedirs(self, mode)
Expand Down Expand Up @@ -981,6 +983,7 @@ def touch(self):
fd = os.open(self, os.O_WRONLY | os.O_CREAT, 0666)
os.close(fd)
os.utime(self, None)
return self

def remove(self):
os.remove(self)
Expand Down
12 changes: 11 additions & 1 deletion test_path.py
Expand Up @@ -176,7 +176,7 @@ def testExplicitModuleClasses(self):

class ReturnSelfTestCase(unittest.TestCase):
"""
Some methods don't necessarily return any value (i.e. makedirs,
Some methods don't necessarily return any value (e.g. makedirs,
makedirs_p, rename, mkdir, touch, chroot). These methods should return
self anyhow to allow methods to be chained.
"""
Expand Down Expand Up @@ -211,6 +211,16 @@ def testRenameReturnsSelf(self):
ret = p.rename(target)
self.assertEquals(target, ret)

def testMkdirReturnsSelf(self):
p = path(self.tempdir) / "newdir"
ret = p.mkdir()
self.assertEquals(p, ret)

def testTouchReturnsSelf(self):
p = path(self.tempdir) / "empty file"
ret = p.touch()
self.assertEquals(p, ret)

class TempDirTestCase(unittest.TestCase):
def setUp(self):
# Create a temporary directory.
Expand Down

0 comments on commit fe95177

Please sign in to comment.