patch.pathtransform: add doctests
In upcoming patches we're going to make this function more complex, so add some
unit tests for it.
--- a/mercurial/patch.py Fri Mar 06 21:12:30 2015 -0800
+++ b/mercurial/patch.py Fri Mar 06 21:48:40 2015 -0800
@@ -1088,6 +1088,22 @@
return s[:i]
def pathtransform(path, strip):
+ '''turn a path from a patch into a path suitable for the repository
+
+ Returns (stripped components, path in repository).
+
+ >>> pathtransform('a/b/c', 0)
+ ('', 'a/b/c')
+ >>> pathtransform(' a/b/c ', 0)
+ ('', ' a/b/c')
+ >>> pathtransform(' a/b/c ', 2)
+ ('a/b/', 'c')
+ >>> pathtransform(' a//b/c ', 2)
+ ('a//b/', 'c')
+ >>> pathtransform('a/b/c', 3)
+ Traceback (most recent call last):
+ PatchError: unable to strip away 1 of 3 dirs from a/b/c
+ '''
pathlen = len(path)
i = 0
if strip == 0:
--- a/tests/test-doctest.py Fri Mar 06 21:12:30 2015 -0800
+++ b/tests/test-doctest.py Fri Mar 06 21:48:40 2015 -0800
@@ -19,6 +19,7 @@
testmod('mercurial.hgweb.hgwebdir_mod')
testmod('mercurial.match')
testmod('mercurial.minirst')
+testmod('mercurial.patch')
testmod('mercurial.pathutil')
testmod('mercurial.revset')
testmod('mercurial.store')