Mercurial > hg
annotate tests/test-walkrepo.py @ 50364:f930af431193 stable
revlog: test more complex file pattern for revlog split
There have been a report of failure while splitting revlog. The file name
involved was important. The pattern involved here are not problematic, but it
help to setup the machinery to test multiple files, the actual fix and
problematic file will arrive in a later changeset.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 02 May 2023 21:43:45 +0200 |
parents | 6000f5b25c9b |
children |
rev | line source |
---|---|
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
1 import os |
27300
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
2 |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
3 from mercurial import ( |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
4 hg, |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
5 scmutil, |
28777
778d947f222e
tests: alias ui as uimod in test-walkrepo
Yuya Nishihara <yuya@tcha.org>
parents:
28676
diff
changeset
|
6 ui as uimod, |
27300
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
7 util, |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
8 ) |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
9 |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
10 chdir = os.chdir |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
11 mkdir = os.mkdir |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
12 pjoin = os.path.join |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
13 |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
14 walkrepos = scmutil.walkrepos |
a8b2bf520a2a
tests: use absolute_import in test-walkrepo
Gregory Szorc <gregory.szorc@gmail.com>
parents:
23532
diff
changeset
|
15 checklink = util.checklink |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
16 |
30559
d83ca854fa21
ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents:
28777
diff
changeset
|
17 u = uimod.ui.load() |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
18 sym = checklink(b'.') |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
19 |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
20 hg.repository(u, b'top1', create=1) |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
21 mkdir(b'subdir') |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
22 chdir(b'subdir') |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
23 hg.repository(u, b'sub1', create=1) |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
24 mkdir(b'subsubdir') |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
25 chdir(b'subsubdir') |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
26 hg.repository(u, b'subsub1', create=1) |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
27 chdir(os.path.pardir) |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
28 if sym: |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
29 os.symlink(os.path.pardir, b'circle') |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
30 os.symlink(pjoin(b'subsubdir', b'subsub1'), b'subsub1') |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
31 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
32 |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
33 def runtest(): |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
34 reposet = frozenset(walkrepos(b'.', followsym=True)) |
7494
85dc88630beb
util: disable walkrepo() recursive behaviour
Patrick Mezard <pmezard@gmail.com>
parents:
7201
diff
changeset
|
35 if sym and (len(reposet) != 3): |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
36 print("reposet = %r" % (reposet,)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
37 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
38 ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
39 "Found %d repositories when I should have found 3" |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
40 % (len(reposet),) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
41 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
42 ) |
7494
85dc88630beb
util: disable walkrepo() recursive behaviour
Patrick Mezard <pmezard@gmail.com>
parents:
7201
diff
changeset
|
43 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
|
44 print("reposet = %r" % (reposet,)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
45 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
46 ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
47 "Found %d repositories when I should have found 2" |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
48 % (len(reposet),) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
49 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
50 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
51 sub1set = frozenset( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
52 (pjoin(b'.', b'sub1'), pjoin(b'.', b'circle', b'subdir', b'sub1')) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
53 ) |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
54 if len(sub1set & reposet) != 1: |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
55 print("sub1set = %r" % (sub1set,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
56 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
57 print("sub1set and reposet should have exactly one path in common.") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
58 sub2set = frozenset( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
59 (pjoin(b'.', b'subsub1'), pjoin(b'.', b'subsubdir', b'subsub1')) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
60 ) |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
61 if len(sub2set & reposet) != 1: |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
62 print("sub2set = %r" % (sub2set,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
63 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
64 print("sub2set and reposet should have exactly one path in common.") |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
65 sub3 = pjoin(b'.', b'circle', b'top1') |
16686
67964cda8701
cleanup: "not x in y" -> "x not in y"
Brodie Rao <brodie@sf.io>
parents:
16683
diff
changeset
|
66 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
|
67 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
68 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
|
69 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
70 |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
71 runtest() |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
72 if sym: |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
73 # Simulate not having symlinks. |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
74 del os.path.samestat |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
75 sym = False |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
76 runtest() |