test-walkrepo.py
66 lines
| 1.9 KiB
| text/x-python
|
PythonLexer
/ tests / test-walkrepo.py
Pulkit Goyal
|
r28676 | from __future__ import absolute_import, print_function | ||
Gregory Szorc
|
r27300 | |||
Eric Hopper
|
r6341 | import os | ||
Gregory Szorc
|
r27300 | |||
from mercurial import ( | ||||
hg, | ||||
scmutil, | ||||
ui, | ||||
util, | ||||
) | ||||
chdir = os.chdir | ||||
mkdir = os.mkdir | ||||
pjoin = os.path.join | ||||
walkrepos = scmutil.walkrepos | ||||
checklink = util.checklink | ||||
Eric Hopper
|
r6341 | |||
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): | ||
Pulkit Goyal
|
r28676 | print("reposet = %r" % (reposet,)) | ||
print(("Found %d repositories when I should have found 3" | ||||
% (len(reposet),))) | ||||
Patrick Mezard
|
r7494 | if (not sym) and (len(reposet) != 2): | ||
Pulkit Goyal
|
r28676 | print("reposet = %r" % (reposet,)) | ||
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: | ||||
Pulkit Goyal
|
r28676 | print("sub1set = %r" % (sub1set,)) | ||
print("reposet = %r" % (reposet,)) | ||||
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: | ||||
Pulkit Goyal
|
r28676 | print("sub2set = %r" % (sub2set,)) | ||
print("reposet = %r" % (reposet,)) | ||||
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: | ||
Pulkit Goyal
|
r28676 | print("reposet = %r" % (reposet,)) | ||
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() | ||||