Rev 4372: (igc) added osutils.parent_directories() (Ian Clatworthy) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Mon May 18 23:41:48 BST 2009


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 4372
revision-id: pqm at pqm.ubuntu.com-20090518224144-3izdthppda5ievhg
parent: pqm at pqm.ubuntu.com-20090517161026-97fgnk254qwvj4wf
parent: ian.clatworthy at canonical.com-20090518214844-r8drldt0v3kt7ue6
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Mon 2009-05-18 23:41:44 +0100
message:
  (igc) added osutils.parent_directories() (Ian Clatworthy)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
  bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
    ------------------------------------------------------------
    revno: 4371.1.1
    revision-id: ian.clatworthy at canonical.com-20090518214844-r8drldt0v3kt7ue6
    parent: pqm at pqm.ubuntu.com-20090517161026-97fgnk254qwvj4wf
    parent: ian.clatworthy at canonical.com-20090518105413-0xa2e47x8x77h9w9
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: integration
    timestamp: Tue 2009-05-19 07:48:44 +1000
    message:
      (igc) added osutils.parent_directories() (Ian Clatworthy)
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
      bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
    ------------------------------------------------------------
    revno: 4370.1.1
    revision-id: ian.clatworthy at canonical.com-20090518105413-0xa2e47x8x77h9w9
    parent: pqm at pqm.ubuntu.com-20090516091716-x8ozyp5uuvsgmsfg
    committer: Ian Clatworthy <ian.clatworthy at canonical.com>
    branch nick: parent-directories
    timestamp: Mon 2009-05-18 20:54:13 +1000
    message:
      add osutils.parent_directories() API
    modified:
      bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
      bzrlib/tests/test_osutils.py   test_osutils.py-20051201224856-e48ee24c12182989
=== modified file 'NEWS'
--- a/NEWS	2009-05-16 08:21:11 +0000
+++ b/NEWS	2009-05-18 21:48:44 +0000
@@ -9,6 +9,33 @@
 In Development
 ##############
 
+Compatibility Breaks
+********************
+
+New Features
+************
+
+Improvements
+************
+
+Bug Fixes
+*********
+
+Documentation
+*************
+
+API Changes
+***********
+
+* Added osutils.parent_directories(). (Ian Clatworthy)
+
+Internals
+*********
+
+Testing
+*******
+
+
 bzr 1.15
 ########
 :1.15rc1: 2009-04-06

=== modified file 'bzrlib/osutils.py'
--- a/bzrlib/osutils.py	2009-05-16 08:21:11 +0000
+++ b/bzrlib/osutils.py	2009-05-18 21:48:44 +0000
@@ -867,6 +867,19 @@
     return pathjoin(*p)
 
 
+def parent_directories(filename):
+    """Return the list of parent directories, deepest first.
+    
+    For example, parent_directories("a/b/c") -> ["a/b", "a"].
+    """
+    parents = []
+    parts = splitpath(dirname(filename))
+    while parts:
+        parents.append(joinpath(parts))
+        parts.pop()
+    return parents
+
+
 try:
     from bzrlib._chunks_to_lines_pyx import chunks_to_lines
 except ImportError:

=== modified file 'bzrlib/tests/test_osutils.py'
--- a/bzrlib/tests/test_osutils.py	2009-05-07 05:08:46 +0000
+++ b/bzrlib/tests/test_osutils.py	2009-05-18 10:54:13 +0000
@@ -860,6 +860,15 @@
         self.assertRaises(errors.BzrError, osutils.splitpath, 'a/../b')
 
 
+class TestParentDirectories(tests.TestCaseInTempDir):
+    """Test osutils.parent_directories()"""
+
+    def test_parent_directories(self):
+        self.assertEqual([], osutils.parent_directories('a'))
+        self.assertEqual(['a'], osutils.parent_directories('a/b'))
+        self.assertEqual(['a/b', 'a'], osutils.parent_directories('a/b/c'))
+
+
 class TestMacFuncsDirs(tests.TestCaseInTempDir):
     """Test mac special functions that require directories."""
 




More information about the bazaar-commits mailing list