Mercurial > hg
annotate tests/test-walkrepo.py @ 34980:705d0f2bb677 stable
pathutil: add doctests for canonpath()
This is a followup to f445b10dc7fb. Since there's no way to ensure that more
drive letters than C: exist, this seems like the only way to test it. This is
enough to catch the f445b10dc7fb scenario, as well as CWD outside of the repo
when the path isn't prefixed with path/to/repo.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 03 Nov 2017 22:22:50 -0400 |
parents | d83ca854fa21 |
children | fa2423acb02f |
rev | line source |
---|---|
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
1 from __future__ import absolute_import, print_function |
27300
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
2 |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
3 import os |
27300
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
4 |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
5 from mercurial import ( |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
6 hg, |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
7 scmutil, |
28777
778d947f222e
tests: alias ui as uimod in test-walkrepo
Yuya Nishihara <yuya@tcha.org>
parents:
28676
diff
changeset
|
8 ui as uimod, |
27300
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
9 util, |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
10 ) |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
11 |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
12 chdir = os.chdir |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
13 mkdir = os.mkdir |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
14 pjoin = os.path.join |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
15 |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
16 walkrepos = scmutil.walkrepos |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
17 checklink = util.checklink |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
18 |
30559
d83ca854fa21
ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents:
28777
diff
changeset
|
19 u = uimod.ui.load() |
16321
e1615a24b73a
tests: make test-walkrepo use hg's symlink test
Matt Mackall <mpm@selenic.com>
parents:
14971
diff
changeset
|
20 sym = checklink('.') |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
21 |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
22 hg.repository(u, 'top1', create=1) |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
23 mkdir('subdir') |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
24 chdir('subdir') |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
25 hg.repository(u, 'sub1', create=1) |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
26 mkdir('subsubdir') |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
27 chdir('subsubdir') |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
28 hg.repository(u, 'subsub1', create=1) |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
29 chdir(os.path.pardir) |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
30 if sym: |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
31 os.symlink(os.path.pardir, 'circle') |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
32 os.symlink(pjoin('subsubdir', 'subsub1'), 'subsub1') |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
33 |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
34 def runtest(): |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
35 reposet = frozenset(walkrepos('.', followsym=True)) |
7494
85dc88630beb
util: disable walkrepo() recursive behaviour
Patrick Mezard <pmezard@gmail.com>
parents:
7201
diff
changeset
|
36 if sym and (len(reposet) != 3): |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
37 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
38 print(("Found %d repositories when I should have found 3" |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
39 % (len(reposet),))) |
7494
85dc88630beb
util: disable walkrepo() recursive behaviour
Patrick Mezard <pmezard@gmail.com>
parents:
7201
diff
changeset
|
40 if (not sym) and (len(reposet) != 2): |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
41 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
42 print(("Found %d repositories when I should have found 2" |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
43 % (len(reposet),))) |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
44 sub1set = frozenset((pjoin('.', 'sub1'), |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
45 pjoin('.', 'circle', 'subdir', 'sub1'))) |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
46 if len(sub1set & reposet) != 1: |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
47 print("sub1set = %r" % (sub1set,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
48 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
49 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
|
50 sub2set = frozenset((pjoin('.', 'subsub1'), |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
51 pjoin('.', 'subsubdir', 'subsub1'))) |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
52 if len(sub2set & reposet) != 1: |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
53 print("sub2set = %r" % (sub2set,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
54 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
55 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
|
56 sub3 = pjoin('.', 'circle', 'top1') |
16686
67964cda8701
cleanup: "not x in y" -> "x not in y"
Brodie Rao <brodie@sf.io>
parents:
16683
diff
changeset
|
57 if sym and sub3 not in reposet: |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
58 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
59 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
|
60 |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
61 runtest() |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
62 if sym: |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
63 # Simulate not having symlinks. |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
64 del os.path.samestat |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
65 sym = False |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
66 runtest() |