Mercurial > hg
annotate tests/test-walkrepo.py @ 44311:2b72c4ff8ed1
nodemap: use an intermediate "docket" file to carry small metadata
This intermediate file will make mmapping, transaction and content validation
easier. (Most of this usefulness will arrive gradually in later changeset). In
particular it will become very useful to append new data are the end of raw file
instead of rewriting on the file on each transaction.
See in code comments for details.
Differential Revision: https://phab.mercurial-scm.org/D7838
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 15 Jan 2020 15:47:50 +0100 |
parents | 2372284d9457 |
children | 6000f5b25c9b |
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() |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
20 sym = checklink(b'.') |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
21 |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
22 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
|
23 mkdir(b'subdir') |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
24 chdir(b'subdir') |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
25 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
|
26 mkdir(b'subsubdir') |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
27 chdir(b'subsubdir') |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
28 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
|
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: |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
31 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
|
32 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
|
33 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
34 |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
35 def runtest(): |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
36 reposet = frozenset(walkrepos(b'.', followsym=True)) |
7494
85dc88630beb
util: disable walkrepo() recursive behaviour
Patrick Mezard <pmezard@gmail.com>
parents:
7201
diff
changeset
|
37 if sym and (len(reposet) != 3): |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
38 print("reposet = %r" % (reposet,)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
39 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
40 ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
41 "Found %d repositories when I should have found 3" |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
42 % (len(reposet),) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
43 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
44 ) |
7494
85dc88630beb
util: disable walkrepo() recursive behaviour
Patrick Mezard <pmezard@gmail.com>
parents:
7201
diff
changeset
|
45 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
|
46 print("reposet = %r" % (reposet,)) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
47 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
48 ( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
49 "Found %d repositories when I should have found 2" |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
50 % (len(reposet),) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
51 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
52 ) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
53 sub1set = frozenset( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
54 (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
|
55 ) |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
56 if len(sub1set & reposet) != 1: |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
57 print("sub1set = %r" % (sub1set,)) |
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("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
|
60 sub2set = frozenset( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
61 (pjoin(b'.', b'subsub1'), pjoin(b'.', b'subsubdir', b'subsub1')) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
62 ) |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
63 if len(sub2set & reposet) != 1: |
28676
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
64 print("sub2set = %r" % (sub2set,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
65 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
66 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
|
67 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
|
68 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
|
69 print("reposet = %r" % (reposet,)) |
a4803f35efba
py3: make test-walkrepo use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
27300
diff
changeset
|
70 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
|
71 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
37878
diff
changeset
|
72 |
6341
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
73 runtest() |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
74 if sym: |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
75 # Simulate not having symlinks. |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
76 del os.path.samestat |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
77 sym = False |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
78 runtest() |