test-walkrepo.py
66 lines
| 2.0 KiB
| text/x-python
|
PythonLexer
/ tests / test-walkrepo.py
|
r28676 | from __future__ import absolute_import, print_function | ||
|
r27300 | |||
|
r6341 | import os | ||
|
r27300 | |||
from mercurial import ( | ||||
hg, | ||||
scmutil, | ||||
|
r28777 | ui as uimod, | ||
|
r27300 | util, | ||
) | ||||
chdir = os.chdir | ||||
mkdir = os.mkdir | ||||
pjoin = os.path.join | ||||
walkrepos = scmutil.walkrepos | ||||
checklink = util.checklink | ||||
|
r6341 | |||
|
r30559 | u = uimod.ui.load() | ||
|
r37895 | sym = checklink(b'.') | ||
|
r6341 | |||
|
r37895 | hg.repository(u, b'top1', create=1) | ||
mkdir(b'subdir') | ||||
chdir(b'subdir') | ||||
hg.repository(u, b'sub1', create=1) | ||||
mkdir(b'subsubdir') | ||||
chdir(b'subsubdir') | ||||
hg.repository(u, b'subsub1', create=1) | ||||
|
r6341 | chdir(os.path.pardir) | ||
if sym: | ||||
|
r37895 | os.symlink(os.path.pardir, b'circle') | ||
os.symlink(pjoin(b'subsubdir', b'subsub1'), b'subsub1') | ||||
|
r6341 | |||
def runtest(): | ||||
|
r37895 | reposet = frozenset(walkrepos(b'.', followsym=True)) | ||
|
r7494 | if sym and (len(reposet) != 3): | ||
|
r28676 | print("reposet = %r" % (reposet,)) | ||
print(("Found %d repositories when I should have found 3" | ||||
% (len(reposet),))) | ||||
|
r7494 | if (not sym) and (len(reposet) != 2): | ||
|
r28676 | print("reposet = %r" % (reposet,)) | ||
print(("Found %d repositories when I should have found 2" | ||||
% (len(reposet),))) | ||||
|
r37895 | sub1set = frozenset((pjoin(b'.', b'sub1'), | ||
pjoin(b'.', b'circle', b'subdir', b'sub1'))) | ||||
|
r6341 | if len(sub1set & reposet) != 1: | ||
|
r28676 | print("sub1set = %r" % (sub1set,)) | ||
print("reposet = %r" % (reposet,)) | ||||
print("sub1set and reposet should have exactly one path in common.") | ||||
|
r37895 | sub2set = frozenset((pjoin(b'.', b'subsub1'), | ||
pjoin(b'.', b'subsubdir', b'subsub1'))) | ||||
|
r6341 | if len(sub2set & reposet) != 1: | ||
|
r28676 | print("sub2set = %r" % (sub2set,)) | ||
print("reposet = %r" % (reposet,)) | ||||
print("sub2set and reposet should have exactly one path in common.") | ||||
|
r37895 | sub3 = pjoin(b'.', b'circle', b'top1') | ||
|
r16686 | if sym and sub3 not in reposet: | ||
|
r28676 | print("reposet = %r" % (reposet,)) | ||
print("Symbolic links are supported and %s is not in reposet" % (sub3,)) | ||||
|
r6341 | |||
runtest() | ||||
if sym: | ||||
# Simulate not having symlinks. | ||||
del os.path.samestat | ||||
sym = False | ||||
runtest() | ||||