diff -r b6d792a9bd11 -r 94c1d3c1aea2 tests/test-manifest.py --- a/tests/test-manifest.py Tue Apr 11 23:12:14 2017 +0900 +++ b/tests/test-manifest.py Mon Apr 10 13:07:47 2017 -0700 @@ -467,5 +467,21 @@ def parsemanifest(self, text): return manifestmod.treemanifest('', text) + def testWalkSubtrees(self): + m = self.parsemanifest(A_DEEPER_MANIFEST) + + dirs = [s._dir for s in m.walksubtrees()] + self.assertEqual( + sorted(['', 'a/', 'a/c/', 'a/d/', 'a/b/', 'a/b/c/', 'a/b/d/']), + sorted(dirs) + ) + + match = matchmod.match('/', '', ['path:a/b/']) + dirs = [s._dir for s in m.walksubtrees(matcher=match)] + self.assertEqual( + sorted(['a/b/', 'a/b/c/', 'a/b/d/']), + sorted(dirs) + ) + if __name__ == '__main__': silenttestrunner.main(__name__)