Mercurial > hg-stable
annotate tests/test-trusted.py @ 50391:12f13b13f414 stable
revlog: avoid possible collision between directory and temporary index
Since 6.4, we create a temporary index file to write the split data without
overwriting the inline version too early. However, the store encoding does not
prevent these new `.i.s` file to collide with a directory with the same name.
While the odds for such a collision to happens are fairly low, the collision
would prevent Mercurial from working.
The store encoding have a mitigation solution in place to prevent such
collisions from happening for `.i` and `.d` files, but not for other extensions.
We cannot update this encoding scheme to solve the issue since it would diverge
from older version of Mercurial.
Instead, we create an alternative directory tree dedicated to such files.
The use of the `.i` extension combined with store encoding will prevent
collisions there.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Thu, 08 Jun 2023 14:28:21 +0200 |
parents | 6000f5b25c9b |
children | e3952d8cfeb5 |
rev | line source |
---|---|
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
1 # Since it's not easy to write a test that portably deals |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
2 # with files from different users/groups, we cheat a bit by |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
3 # monkey-patching some functions in the util module |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
4 |
28913
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
5 |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
6 import os |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
7 import sys |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
8 |
28913
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
9 from mercurial import ( |
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
10 error, |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
11 pycompat, |
28913
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
12 ui as uimod, |
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
13 util, |
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
14 ) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
15 from mercurial.utils import stringutil |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
16 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
17 hgrc = os.environ['HGRCPATH'] |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
18 f = open(hgrc, 'rb') |
5523
5db730475d6d
tests/*: avoid losing the original settings from $HGRCPATH
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
19 basehgrc = f.read() |
5db730475d6d
tests/*: avoid losing the original settings from $HGRCPATH
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
20 f.close() |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
21 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
22 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
23 def _maybesysstr(v): |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
24 if isinstance(v, bytes): |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
25 return pycompat.sysstr(v) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
26 return pycompat.sysstr(stringutil.pprint(v)) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
27 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
28 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
29 def bprint(*args, **kwargs): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
30 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
31 *[_maybesysstr(a) for a in args], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
32 **{k: _maybesysstr(v) for k, v in kwargs.items()} |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
33 ) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
34 # avoid awkward interleaving with ui object's output |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
35 sys.stdout.flush() |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
36 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
37 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
38 def testui( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
39 user=b'foo', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
40 group=b'bar', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
41 tusers=(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
42 tgroups=(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
43 cuser=b'foo', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
44 cgroup=b'bar', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
45 debug=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
46 silent=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
47 report=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
48 ): |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
49 # user, group => owners of the file |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
50 # tusers, tgroups => trusted users/groups |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
51 # cuser, cgroup => user/group of the current process |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
52 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
53 # write a global hgrc with the list of trusted users/groups and |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
54 # some setting so that we can be sure it was read |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
55 f = open(hgrc, 'wb') |
5523
5db730475d6d
tests/*: avoid losing the original settings from $HGRCPATH
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
56 f.write(basehgrc) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
57 f.write(b'\n[paths]\n') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
58 f.write(b'global = /some/path\n\n') |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
59 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
60 if tusers or tgroups: |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
61 f.write(b'[trusted]\n') |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
62 if tusers: |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
63 f.write(b'users = %s\n' % b', '.join(tusers)) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
64 if tgroups: |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
65 f.write(b'groups = %s\n' % b', '.join(tgroups)) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
66 f.close() |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
67 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
68 # override the functions that give names to uids and gids |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
69 def username(uid=None): |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
70 if uid is None: |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
71 return cuser |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
72 return user |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
73 |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
74 util.username = username |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
75 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
76 def groupname(gid=None): |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
77 if gid is None: |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
78 return b'bar' |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
79 return group |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
80 |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
81 util.groupname = groupname |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
82 |
8657
3fa92c618624
posix: do not use fstat in isowner
Martin Geisler <mg@lazybytes.net>
parents:
8190
diff
changeset
|
83 def isowner(st): |
3677
1a0fa3914c46
Avoid looking up usernames if the current user owns the .hgrc file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3552
diff
changeset
|
84 return user == cuser |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
85 |
3677
1a0fa3914c46
Avoid looking up usernames if the current user owns the .hgrc file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3552
diff
changeset
|
86 util.isowner = isowner |
1a0fa3914c46
Avoid looking up usernames if the current user owns the .hgrc file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3552
diff
changeset
|
87 |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
88 # try to read everything |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
89 # print '# File belongs to user %s, group %s' % (user, group) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
90 # print '# trusted users = %s; trusted groups = %s' % (tusers, tgroups) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
91 kind = (b'different', b'same') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
92 who = (b'', b'user', b'group', b'user and the group') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
93 trusted = who[(user in tusers) + 2 * (group in tgroups)] |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
94 if trusted: |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
95 trusted = b', but we trust the ' + trusted |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
96 bprint( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
97 b'# %s user, %s group%s' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
98 % (kind[user == cuser], kind[group == cgroup], trusted) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
99 ) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
100 |
30564
d83ca854fa21
ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents:
28934
diff
changeset
|
101 u = uimod.ui.load() |
34858
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
102 # disable the configuration registration warning |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
103 # |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
104 # the purpose of this test is to check the old behavior, not to validate the |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
105 # behavior from registered item. so we silent warning related to unregisted |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
106 # config. |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
107 u.setconfig(b'devel', b'warn-config-unknown', False, b'test') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
108 u.setconfig(b'devel', b'all-warnings', False, b'test') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
109 u.setconfig(b'ui', b'debug', pycompat.bytestr(bool(debug))) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
110 u.setconfig(b'ui', b'report_untrusted', pycompat.bytestr(bool(report))) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
111 u.readconfig(b'.hg/hgrc') |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
112 if silent: |
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
113 return u |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
114 bprint(b'trusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
115 for name, path in u.configitems(b'paths'): |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
116 bprint(b' ', name, b'=', util.pconvert(path)) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
117 bprint(b'untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
118 for name, path in u.configitems(b'paths', untrusted=True): |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
119 bprint(b'.', end=b' ') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
120 u.config(b'paths', name) # warning with debug=True |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
121 bprint(b'.', end=b' ') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
122 u.config(b'paths', name, untrusted=True) # no warnings |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
123 bprint(name, b'=', util.pconvert(path)) |
28934
c4040a35b5d9
tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28913
diff
changeset
|
124 print() |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
125 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
126 return u |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
127 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
128 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
129 os.mkdir(b'repo') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
130 os.chdir(b'repo') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
131 os.mkdir(b'.hg') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
132 f = open(b'.hg/hgrc', 'wb') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
133 f.write(b'[paths]\n') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
134 f.write(b'local = /another/path\n\n') |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
135 f.close() |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
136 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
137 # print '# Everything is run by user foo, group bar\n' |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
138 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
139 # same user, same group |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
140 testui() |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
141 # same user, different group |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
142 testui(group=b'def') |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
143 # different user, same group |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
144 testui(user=b'abc') |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
145 # ... but we trust the group |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
146 testui(user=b'abc', tgroups=[b'bar']) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
147 # different user, different group |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
148 testui(user=b'abc', group=b'def') |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
149 # ... but we trust the user |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
150 testui(user=b'abc', group=b'def', tusers=[b'abc']) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
151 # ... but we trust the group |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
152 testui(user=b'abc', group=b'def', tgroups=[b'def']) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
153 # ... but we trust the user and the group |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
154 testui(user=b'abc', group=b'def', tusers=[b'abc'], tgroups=[b'def']) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
155 # ... but we trust all users |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
156 bprint(b'# we trust all users') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
157 testui(user=b'abc', group=b'def', tusers=[b'*']) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
158 # ... but we trust all groups |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
159 bprint(b'# we trust all groups') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
160 testui(user=b'abc', group=b'def', tgroups=[b'*']) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
161 # ... but we trust the whole universe |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
162 bprint(b'# we trust all users and groups') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
163 testui(user=b'abc', group=b'def', tusers=[b'*'], tgroups=[b'*']) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
164 # ... check that users and groups are in different namespaces |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
165 bprint(b"# we don't get confused by users and groups with the same name") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
166 testui(user=b'abc', group=b'def', tusers=[b'def'], tgroups=[b'abc']) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
167 # ... lists of user names work |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
168 bprint(b"# list of user names") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
169 testui( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
170 user=b'abc', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
171 group=b'def', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
172 tusers=[b'foo', b'xyz', b'abc', b'bleh'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
173 tgroups=[b'bar', b'baz', b'qux'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
174 ) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
175 # ... lists of group names work |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
176 bprint(b"# list of group names") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
177 testui( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
178 user=b'abc', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
179 group=b'def', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
180 tusers=[b'foo', b'xyz', b'bleh'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
181 tgroups=[b'bar', b'def', b'baz', b'qux'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
182 ) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
183 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
184 bprint(b"# Can't figure out the name of the user running this process") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
185 testui(user=b'abc', group=b'def', cuser=None) |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
186 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
187 bprint(b"# prints debug warnings") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
188 u = testui(user=b'abc', group=b'def', cuser=b'foo', debug=True) |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
189 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
190 bprint(b"# report_untrusted enabled without debug hides warnings") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
191 u = testui(user=b'abc', group=b'def', cuser=b'foo', report=False) |
13493
95b0d4c1c9e1
ui: always report untrusted hgrc files when debug enabled
Ry4an Brase <ry4an-hg@ry4an.org>
parents:
11291
diff
changeset
|
192 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
193 bprint(b"# report_untrusted enabled with debug shows warnings") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
194 u = testui(user=b'abc', group=b'def', cuser=b'foo', debug=True, report=False) |
13493
95b0d4c1c9e1
ui: always report untrusted hgrc files when debug enabled
Ry4an Brase <ry4an-hg@ry4an.org>
parents:
11291
diff
changeset
|
195 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
196 bprint(b"# ui.readconfig sections") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
197 filename = b'foobar' |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
198 f = open(filename, 'wb') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
199 f.write(b'[foobar]\n') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
200 f.write(b'baz = quux\n') |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
201 f.close() |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
202 u.readconfig(filename, sections=[b'foobar']) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
203 bprint(u.config(b'foobar', b'baz')) |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
204 |
28934
c4040a35b5d9
tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28913
diff
changeset
|
205 print() |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
206 bprint(b"# read trusted, untrusted, new ui, trusted") |
30564
d83ca854fa21
ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents:
28934
diff
changeset
|
207 u = uimod.ui.load() |
34858
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
208 # disable the configuration registration warning |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
209 # |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
210 # the purpose of this test is to check the old behavior, not to validate the |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
211 # behavior from registered item. so we silent warning related to unregisted |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
212 # config. |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
213 u.setconfig(b'devel', b'warn-config-unknown', False, b'test') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
214 u.setconfig(b'devel', b'all-warnings', False, b'test') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
215 u.setconfig(b'ui', b'debug', b'on') |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
216 u.readconfig(filename) |
8190
9b8ac5fb7760
ui: kill most users of parentui name and arg, replace with .copy()
Matt Mackall <mpm@selenic.com>
parents:
8144
diff
changeset
|
217 u2 = u.copy() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
218 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
219 |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
220 def username(uid=None): |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
221 return b'foo' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
222 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
223 |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
224 util.username = username |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
225 u2.readconfig(b'.hg/hgrc') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
226 bprint(b'trusted:') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
227 bprint(u2.config(b'foobar', b'baz')) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
228 bprint(b'untrusted:') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
229 bprint(u2.config(b'foobar', b'baz', untrusted=True)) |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
230 |
28934
c4040a35b5d9
tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28913
diff
changeset
|
231 print() |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
232 bprint(b"# error handling") |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
233 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
234 |
26587
56b2bcea2529
error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25660
diff
changeset
|
235 def assertraises(f, exc=error.Abort): |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
236 try: |
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
237 f() |
25660
328739ea70c3
global: mass rewrite to use modern exception syntax
Gregory Szorc <gregory.szorc@gmail.com>
parents:
19872
diff
changeset
|
238 except exc as inst: |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
239 bprint(b'raised', inst.__class__.__name__) |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
240 else: |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
241 bprint(b'no exception?!') |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
242 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
243 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
244 bprint(b"# file doesn't exist") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
245 os.unlink(b'.hg/hgrc') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
246 assert not os.path.exists(b'.hg/hgrc') |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
247 testui(debug=True, silent=True) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
248 testui(user=b'abc', group=b'def', debug=True, silent=True) |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
249 |
28934
c4040a35b5d9
tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28913
diff
changeset
|
250 print() |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
251 bprint(b"# parse error") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
252 f = open(b'.hg/hgrc', 'wb') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
253 f.write(b'foo') |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
254 f.close() |
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
255 |
8144
fca54469480e
ui: introduce new config parser
Matt Mackall <mpm@selenic.com>
parents:
8142
diff
changeset
|
256 try: |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
257 testui(user=b'abc', group=b'def', silent=True) |
45909
9dc1351d0b5f
errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents:
45903
diff
changeset
|
258 except error.ConfigError as inst: |
45903
c9b14c56fc2b
tests: use new ParseError.format() in test-trusted.py
Martin von Zweigbergk <martinvonz@google.com>
parents:
43076
diff
changeset
|
259 bprint(inst.format()) |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
260 |
8144
fca54469480e
ui: introduce new config parser
Matt Mackall <mpm@selenic.com>
parents:
8142
diff
changeset
|
261 try: |
fca54469480e
ui: introduce new config parser
Matt Mackall <mpm@selenic.com>
parents:
8142
diff
changeset
|
262 testui(debug=True, silent=True) |
45909
9dc1351d0b5f
errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents:
45903
diff
changeset
|
263 except error.ConfigError as inst: |
45903
c9b14c56fc2b
tests: use new ParseError.format() in test-trusted.py
Martin von Zweigbergk <martinvonz@google.com>
parents:
43076
diff
changeset
|
264 bprint(inst.format()) |
31481
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
265 |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
266 print() |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
267 bprint(b'# access typed information') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
268 with open(b'.hg/hgrc', 'wb') as f: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
269 f.write( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
270 b'''\ |
31481
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
271 [foo] |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
272 sub=main |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
273 sub:one=one |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
274 sub:two=two |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
275 path=monty/python |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
276 bool=true |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
277 int=42 |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
278 bytes=81mb |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
279 list=spam,ham,eggs |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
280 ''' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
281 ) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
282 u = testui(user=b'abc', group=b'def', cuser=b'foo', silent=True) |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
283 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
284 |
31857
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31481
diff
changeset
|
285 def configpath(section, name, default=None, untrusted=False): |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31481
diff
changeset
|
286 path = u.configpath(section, name, default, untrusted) |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31481
diff
changeset
|
287 if path is None: |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31481
diff
changeset
|
288 return None |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31481
diff
changeset
|
289 return util.pconvert(path) |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31481
diff
changeset
|
290 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
291 |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
292 bprint(b'# suboptions, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
293 trusted = u.configsuboptions(b'foo', b'sub') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
294 untrusted = u.configsuboptions(b'foo', b'sub', untrusted=True) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
295 bprint( |
31481
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30564
diff
changeset
|
296 (trusted[0], sorted(trusted[1].items())), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
297 (untrusted[0], sorted(untrusted[1].items())), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
298 ) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
299 bprint(b'# path, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
300 bprint(configpath(b'foo', b'path'), configpath(b'foo', b'path', untrusted=True)) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
301 bprint(b'# bool, trusted and untrusted') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
302 bprint( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
303 u.configbool(b'foo', b'bool'), u.configbool(b'foo', b'bool', untrusted=True) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
304 ) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
305 bprint(b'# int, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
306 bprint( |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
307 u.configint(b'foo', b'int', 0), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
308 u.configint(b'foo', b'int', 0, untrusted=True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
309 ) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
310 bprint(b'# bytes, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
311 bprint( |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
312 u.configbytes(b'foo', b'bytes', 0), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
313 u.configbytes(b'foo', b'bytes', 0, untrusted=True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
314 ) |
41374
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
315 bprint(b'# list, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
316 bprint( |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
317 u.configlist(b'foo', b'list', []), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
318 u.configlist(b'foo', b'list', [], untrusted=True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41511
diff
changeset
|
319 ) |