test-walkrepo.py
55 lines
| 1.8 KiB
| text/x-python
|
PythonLexer
/ tests / test-walkrepo.py
Eric Hopper
|
r6341 | import os | ||
from mercurial import hg, ui | ||||
Adrian Buehlmann
|
r13975 | from mercurial.scmutil import walkrepos | ||
Matt Mackall
|
r16321 | from mercurial.util import checklink | ||
Eric Hopper
|
r6341 | from os import mkdir, chdir | ||
from os.path import join as pjoin | ||||
u = ui.ui() | ||||
Matt Mackall
|
r16321 | sym = checklink('.') | ||
Eric Hopper
|
r6341 | |||
hg.repository(u, 'top1', create=1) | ||||
mkdir('subdir') | ||||
chdir('subdir') | ||||
hg.repository(u, 'sub1', create=1) | ||||
mkdir('subsubdir') | ||||
chdir('subsubdir') | ||||
hg.repository(u, 'subsub1', create=1) | ||||
chdir(os.path.pardir) | ||||
if sym: | ||||
os.symlink(os.path.pardir, 'circle') | ||||
os.symlink(pjoin('subsubdir', 'subsub1'), 'subsub1') | ||||
def runtest(): | ||||
reposet = frozenset(walkrepos('.', followsym=True)) | ||||
Patrick Mezard
|
r7494 | if sym and (len(reposet) != 3): | ||
Eric Hopper
|
r6341 | print "reposet = %r" % (reposet,) | ||
Brodie Rao
|
r16683 | print ("Found %d repositories when I should have found 3" | ||
% (len(reposet),)) | ||||
Patrick Mezard
|
r7494 | if (not sym) and (len(reposet) != 2): | ||
Eric Hopper
|
r6341 | print "reposet = %r" % (reposet,) | ||
Brodie Rao
|
r16683 | print ("Found %d repositories when I should have found 2" | ||
% (len(reposet),)) | ||||
Eric Hopper
|
r6341 | sub1set = frozenset((pjoin('.', 'sub1'), | ||
pjoin('.', 'circle', 'subdir', 'sub1'))) | ||||
if len(sub1set & reposet) != 1: | ||||
print "sub1set = %r" % (sub1set,) | ||||
print "reposet = %r" % (reposet,) | ||||
Benoit Allard
|
r7492 | print "sub1set and reposet should have exactly one path in common." | ||
Eric Hopper
|
r6341 | sub2set = frozenset((pjoin('.', 'subsub1'), | ||
pjoin('.', 'subsubdir', 'subsub1'))) | ||||
if len(sub2set & reposet) != 1: | ||||
print "sub2set = %r" % (sub2set,) | ||||
print "reposet = %r" % (reposet,) | ||||
Enrique A. Tobis
|
r23532 | print "sub2set and reposet should have exactly one path in common." | ||
Eric Hopper
|
r6341 | sub3 = pjoin('.', 'circle', 'top1') | ||
Brodie Rao
|
r16686 | if sym and sub3 not in reposet: | ||
Eric Hopper
|
r6341 | print "reposet = %r" % (reposet,) | ||
Benoit Allard
|
r7492 | print "Symbolic links are supported and %s is not in reposet" % (sub3,) | ||
Eric Hopper
|
r6341 | |||
runtest() | ||||
if sym: | ||||
# Simulate not having symlinks. | ||||
del os.path.samestat | ||||
sym = False | ||||
runtest() | ||||