Mercurial > hg
changeset 13402:f947d9a4c45c
hgweb: doctest of url creation from wildcard expansion
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Tue, 15 Feb 2011 01:04:10 +0100 |
parents | 12773f1b7728 |
children | 8ed91088acbb |
files | mercurial/hgweb/hgwebdir_mod.py tests/test-doctest.py |
diffstat | 2 files changed, 20 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hgweb/hgwebdir_mod.py Mon Feb 14 18:04:20 2011 -0600 +++ b/mercurial/hgweb/hgwebdir_mod.py Tue Feb 15 01:04:10 2011 +0100 @@ -33,14 +33,25 @@ repos.append((prefix, root)) continue roothead = os.path.normpath(os.path.abspath(roothead)) - for path in util.walkrepos(roothead, followsym=True, recurse=recurse): - path = os.path.normpath(path) - name = util.pconvert(path[len(roothead):]).strip('/') - if prefix: - name = prefix + '/' + name - repos.append((name, path)) + paths = util.walkrepos(roothead, followsym=True, recurse=recurse) + repos.extend(urlrepos(prefix, roothead, paths)) return repos +def urlrepos(prefix, roothead, paths): + """yield url paths and filesystem paths from a list of repo paths + + >>> list(urlrepos('hg', '/opt', ['/opt/r', '/opt/r/r', '/opt'])) + [('hg/r', '/opt/r'), ('hg/r/r', '/opt/r/r'), ('hg/', '/opt')] + >>> list(urlrepos('', '/opt', ['/opt/r', '/opt/r/r', '/opt'])) + [('r', '/opt/r'), ('r/r', '/opt/r/r'), ('', '/opt')] + """ + for path in paths: + path = os.path.normpath(path) + name = util.pconvert(path[len(roothead):]).strip('/') + if prefix: + name = prefix + '/' + name + yield name, path + class hgwebdir(object): refreshinterval = 20
--- a/tests/test-doctest.py Mon Feb 14 18:04:20 2011 -0600 +++ b/tests/test-doctest.py Tue Feb 15 01:04:10 2011 +0100 @@ -22,5 +22,8 @@ import mercurial.encoding doctest.testmod(mercurial.encoding) +import mercurial.hgweb.hgwebdir_mod +doctest.testmod(mercurial.hgweb.hgwebdir_mod) + import hgext.convert.cvsps doctest.testmod(hgext.convert.cvsps)