##// END OF EJS Templates
histedit: make verification configurable...
histedit: make verification configurable Before we can add a 'base' action to histedit need to change verification so that action can specify which steps of verification should run for it. Also it's everything we need for the exec and stop actions implementation. I thought about baking verification into each histedit action (so each of them is responsible for verifying its constraints) but it felt wrong because: - every action would need to know its context (eg. the list of all other actions) - a lot of duplicated work will be added - each action will iterate through all others - the steps of the verification would need to be extracted and named anyway in order to be reused The verifyrules function grows too big now. I plan to refator it in one of the next series.

File last commit:

r23532:fad89629 default
r27082:4898e442 default
Show More
test-walkrepo.py
55 lines | 1.8 KiB | text/x-python | PythonLexer
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
r6341 import os
from mercurial import hg, ui
Adrian Buehlmann
move walkrepos from util to scmutil
r13975 from mercurial.scmutil import walkrepos
Matt Mackall
tests: make test-walkrepo use hg's symlink test
r16321 from mercurial.util import checklink
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
r6341 from os import mkdir, chdir
from os.path import join as pjoin
u = ui.ui()
Matt Mackall
tests: make test-walkrepo use hg's symlink test
r16321 sym = checklink('.')
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
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
util: disable walkrepo() recursive behaviour...
r7494 if sym and (len(reposet) != 3):
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
r6341 print "reposet = %r" % (reposet,)
Brodie Rao
cleanup: eradicate long lines
r16683 print ("Found %d repositories when I should have found 3"
% (len(reposet),))
Patrick Mezard
util: disable walkrepo() recursive behaviour...
r7494 if (not sym) and (len(reposet) != 2):
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
r6341 print "reposet = %r" % (reposet,)
Brodie Rao
cleanup: eradicate long lines
r16683 print ("Found %d repositories when I should have found 2"
% (len(reposet),))
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
r6341 sub1set = frozenset((pjoin('.', 'sub1'),
pjoin('.', 'circle', 'subdir', 'sub1')))
if len(sub1set & reposet) != 1:
print "sub1set = %r" % (sub1set,)
print "reposet = %r" % (reposet,)
Benoit Allard
tests: test-walkrepo shouldn't throw SystemExit...
r7492 print "sub1set and reposet should have exactly one path in common."
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
r6341 sub2set = frozenset((pjoin('.', 'subsub1'),
pjoin('.', 'subsubdir', 'subsub1')))
if len(sub2set & reposet) != 1:
print "sub2set = %r" % (sub2set,)
print "reposet = %r" % (reposet,)
Enrique A. Tobis
tests: fix a typo in test-walkrepos.py
r23532 print "sub2set and reposet should have exactly one path in common."
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
r6341 sub3 = pjoin('.', 'circle', 'top1')
Brodie Rao
cleanup: "not x in y" -> "x not in y"
r16686 if sym and sub3 not in reposet:
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
r6341 print "reposet = %r" % (reposet,)
Benoit Allard
tests: test-walkrepo shouldn't throw SystemExit...
r7492 print "Symbolic links are supported and %s is not in reposet" % (sub3,)
Eric Hopper
test: Add tests for webdir symlinks and walkrepos.
r6341
runtest()
if sym:
# Simulate not having symlinks.
del os.path.samestat
sym = False
runtest()