annotate tests/test-walkrepo.py @ 26724:7fc759c0c430

destupdate: extract logic based on bookmarks in its own function One of the main goal of having consolidated destination function is to allow extension to play with this logic. We extract sub logic to make is wrapping more practical.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Thu, 15 Oct 2015 02:27:30 +0100
parents fad896292e7d
children a8b2bf520a2a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
1 import os
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
2 from mercurial import hg, ui
13975
938fbeacac84 move walkrepos from util to scmutil
Adrian Buehlmann <adrian@cadifra.com>
parents: 8656
diff changeset
3 from mercurial.scmutil import walkrepos
16321
e1615a24b73a tests: make test-walkrepo use hg's symlink test
Matt Mackall <mpm@selenic.com>
parents: 14971
diff changeset
4 from mercurial.util import checklink
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
5 from os import mkdir, chdir
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
6 from os.path import join as pjoin
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
7
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
8 u = ui.ui()
16321
e1615a24b73a tests: make test-walkrepo use hg's symlink test
Matt Mackall <mpm@selenic.com>
parents: 14971
diff changeset
9 sym = checklink('.')
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
10
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
11 hg.repository(u, 'top1', create=1)
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
12 mkdir('subdir')
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
13 chdir('subdir')
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
14 hg.repository(u, 'sub1', create=1)
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
15 mkdir('subsubdir')
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
16 chdir('subsubdir')
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
17 hg.repository(u, 'subsub1', create=1)
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
18 chdir(os.path.pardir)
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
19 if sym:
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
20 os.symlink(os.path.pardir, 'circle')
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
21 os.symlink(pjoin('subsubdir', 'subsub1'), 'subsub1')
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
22
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
23 def runtest():
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
24 reposet = frozenset(walkrepos('.', followsym=True))
7494
85dc88630beb util: disable walkrepo() recursive behaviour
Patrick Mezard <pmezard@gmail.com>
parents: 7201
diff changeset
25 if sym and (len(reposet) != 3):
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
26 print "reposet = %r" % (reposet,)
16683
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16321
diff changeset
27 print ("Found %d repositories when I should have found 3"
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16321
diff changeset
28 % (len(reposet),))
7494
85dc88630beb util: disable walkrepo() recursive behaviour
Patrick Mezard <pmezard@gmail.com>
parents: 7201
diff changeset
29 if (not sym) and (len(reposet) != 2):
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
30 print "reposet = %r" % (reposet,)
16683
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16321
diff changeset
31 print ("Found %d repositories when I should have found 2"
525fdb738975 cleanup: eradicate long lines
Brodie Rao <brodie@sf.io>
parents: 16321
diff changeset
32 % (len(reposet),))
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
33 sub1set = frozenset((pjoin('.', 'sub1'),
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
34 pjoin('.', 'circle', 'subdir', 'sub1')))
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
35 if len(sub1set & reposet) != 1:
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
36 print "sub1set = %r" % (sub1set,)
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
37 print "reposet = %r" % (reposet,)
7492
8649b2a3de75 tests: test-walkrepo shouldn't throw SystemExit
Benoit Allard <benoit@aeteurope.nl>
parents: 7201
diff changeset
38 print "sub1set and reposet should have exactly one path in common."
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
39 sub2set = frozenset((pjoin('.', 'subsub1'),
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
40 pjoin('.', 'subsubdir', 'subsub1')))
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
41 if len(sub2set & reposet) != 1:
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
42 print "sub2set = %r" % (sub2set,)
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
43 print "reposet = %r" % (reposet,)
23532
fad896292e7d tests: fix a typo in test-walkrepos.py
Enrique A. Tobis <enrique@tobis.com.ar>
parents: 16686
diff changeset
44 print "sub2set and reposet should have exactly one path in common."
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
45 sub3 = pjoin('.', 'circle', 'top1')
16686
67964cda8701 cleanup: "not x in y" -> "x not in y"
Brodie Rao <brodie@sf.io>
parents: 16683
diff changeset
46 if sym and sub3 not in reposet:
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
47 print "reposet = %r" % (reposet,)
7492
8649b2a3de75 tests: test-walkrepo shouldn't throw SystemExit
Benoit Allard <benoit@aeteurope.nl>
parents: 7201
diff changeset
48 print "Symbolic links are supported and %s is not in reposet" % (sub3,)
6341
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
49
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
50 runtest()
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
51 if sym:
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
52 # Simulate not having symlinks.
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
53 del os.path.samestat
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
54 sym = False
63bdfcc3eaaf test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff changeset
55 runtest()