Mercurial > hg
annotate tests/test-trusted.py @ 51460:cebd96dee99a
branchcache: move the filename to a class attribute
This prepare the introduction of more variant of cache.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sun, 25 Feb 2024 20:40:37 +0100 |
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 |
41352
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, |
41352
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 ) |
41352
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'] |
41352
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:
41497
diff
changeset
|
22 |
41352
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:
41497
diff
changeset
|
28 |
41352
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:
41497
diff
changeset
|
30 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
31 *[_maybesysstr(a) for a in args], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
32 **{k: _maybesysstr(v) for k, v in kwargs.items()} |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
33 ) |
41352
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:
41497
diff
changeset
|
37 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
38 def testui( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
39 user=b'foo', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
40 group=b'bar', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
41 tusers=(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
42 tgroups=(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
43 cuser=b'foo', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
44 cgroup=b'bar', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
45 debug=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
46 silent=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
47 report=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
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 |
41352
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) |
41352
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: |
41352
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: |
41352
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: |
41352
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:
41497
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: |
41352
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:
41497
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:
41497
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:
41497
diff
changeset
|
89 # print '# File belongs to user %s, group %s' % (user, group) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
90 # print '# trusted users = %s; trusted groups = %s' % (tusers, tgroups) |
41352
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:
41497
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: |
41352
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:
41497
diff
changeset
|
96 bprint( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
97 b'# %s user, %s group%s' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
98 % (kind[user == cuser], kind[group == cgroup], trusted) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
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 |
30559
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. |
41352
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 |
41352
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:
41497
diff
changeset
|
120 u.config(b'paths', name) # warning with debug=True |
41352
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:
41497
diff
changeset
|
122 u.config(b'paths', name, untrusted=True) # no warnings |
41352
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:
41497
diff
changeset
|
128 |
41352
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:
41497
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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:
41497
diff
changeset
|
169 testui( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
170 user=b'abc', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
171 group=b'def', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
172 tusers=[b'foo', b'xyz', b'abc', b'bleh'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
173 tgroups=[b'bar', b'baz', b'qux'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
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 |
41352
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:
41497
diff
changeset
|
177 testui( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
178 user=b'abc', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
179 group=b'def', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
180 tusers=[b'foo', b'xyz', b'bleh'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
181 tgroups=[b'bar', b'def', b'baz', b'qux'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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 |
41352
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() |
41352
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() |
41352
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") |
30559
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. |
41352
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:
41497
diff
changeset
|
218 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
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): |
41352
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:
41497
diff
changeset
|
222 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
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 |
41352
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() |
41352
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:
41497
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: |
41352
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: |
41352
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:
41497
diff
changeset
|
243 |
41352
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) |
41352
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() |
41352
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: |
41352
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) |
45894
9dc1351d0b5f
errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents:
45888
diff
changeset
|
258 except error.ConfigError as inst: |
45888
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) |
45894
9dc1351d0b5f
errors: raise ConfigError on failure to parse config file
Martin von Zweigbergk <martinvonz@google.com>
parents:
45888
diff
changeset
|
263 except error.ConfigError as inst: |
45888
c9b14c56fc2b
tests: use new ParseError.format() in test-trusted.py
Martin von Zweigbergk <martinvonz@google.com>
parents:
43076
diff
changeset
|
264 bprint(inst.format()) |
31472
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
265 |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
266 print() |
41352
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:
41497
diff
changeset
|
269 f.write( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
270 b'''\ |
31472
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
271 [foo] |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
272 sub=main |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
273 sub:one=one |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
274 sub:two=two |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
275 path=monty/python |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
276 bool=true |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
277 int=42 |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
278 bytes=81mb |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
279 list=spam,ham,eggs |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
280 ''' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
281 ) |
41352
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:
41497
diff
changeset
|
283 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
284 |
31857
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31472
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:
31472
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:
31472
diff
changeset
|
287 if path is None: |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31472
diff
changeset
|
288 return None |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31472
diff
changeset
|
289 return util.pconvert(path) |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31472
diff
changeset
|
290 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
291 |
41352
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( |
31472
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
296 (trusted[0], sorted(trusted[1].items())), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
297 (untrusted[0], sorted(untrusted[1].items())), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
298 ) |
41352
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:
41497
diff
changeset
|
302 bprint( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
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:
41497
diff
changeset
|
304 ) |
41352
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:
41497
diff
changeset
|
308 u.configint(b'foo', b'int', 0, untrusted=True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
309 ) |
41352
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:
41497
diff
changeset
|
313 u.configbytes(b'foo', b'bytes', 0, untrusted=True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
314 ) |
41352
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:
41497
diff
changeset
|
318 u.configlist(b'foo', b'list', [], untrusted=True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
319 ) |