Mercurial > hg
annotate tests/test-walkrepo.py @ 39232:0a5b20c107a6
repository: remove storedeltachains from ifilestorage
The ifilestorage interface was bootstrapped from requirements of
callers outside the storage implementation (revlogs). I believe we
even made some members public so they could be part of the interface!
Historically, the changegroup code was a gross offender when it
came to accessing low-level storage primitives. There are a handful
of members on the ifilestorage interface that are/were used only
for changegroup code.
With the recent refactor of changegroup code and the establishment
of a formal API on the storage interface for producing revision
deltas, the changegroup code is no longer accessing these low-level
primitives related to delta generation directly. Instead, things
are abstracted away in the storage implementation.
This means we can remove elements from the storage interface that
are no longer needed.
We start with "storedeltachains."
We remove it from the interface. Then we make it a private
attribute and update all references.
.. api:: storedeltachains has been dropped from ifilestorage interface
.. api:: storedeltachains on revlog classes is now _storedeltachains
Differential Revision: https://phab.mercurial-scm.org/D4227
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 09 Aug 2018 16:11:24 -0700 |
parents | fa2423acb02f |
children | 2372284d9457 |
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 |
63bdfcc3eaaf
test: Add tests for webdir symlinks and walkrepos.
Eric Hopper <hopper@omnifarious.org>
parents:
diff
changeset
|
34 def runtest(): |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
35 reposet = frozenset(walkrepos(b'.', 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),))) |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
44 sub1set = frozenset((pjoin(b'.', b'sub1'), |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
45 pjoin(b'.', b'circle', b'subdir', b'sub1'))) |
6341
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.") |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
50 sub2set = frozenset((pjoin(b'.', b'subsub1'), |
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
51 pjoin(b'.', b'subsubdir', b'subsub1'))) |
6341
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.") |
37878
fa2423acb02f
tests: port test-walkrepo.py to Python 3
Augie Fackler <augie@google.com>
parents:
30559
diff
changeset
|
56 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
|
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() |