Mercurial > hg
annotate tests/test-trusted.py @ 48830:3491c450dcae
setup: remove Python 2 support code for determining dylib suffix
Differential Revision: https://phab.mercurial-scm.org/D12274
author | Augie Fackler <augie@google.com> |
---|---|
date | Wed, 02 Mar 2022 10:12:48 -0500 |
parents | 9dc1351d0b5f |
children | 6000f5b25c9b |
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 |
28934
c4040a35b5d9
tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28913
diff
changeset
|
5 from __future__ import absolute_import, print_function |
28913
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
6 |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
7 import os |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
8 import sys |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
9 |
28913
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
10 from mercurial import ( |
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
11 error, |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
12 pycompat, |
28913
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
13 ui as uimod, |
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
14 util, |
b4048ce003fb
tests: make test-trusted use absolute_import
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
15 ) |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
16 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
|
17 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
18 hgrc = os.environ['HGRCPATH'] |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
19 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
|
20 basehgrc = f.read() |
5db730475d6d
tests/*: avoid losing the original settings from $HGRCPATH
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
21 f.close() |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
22 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
23 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
24 def _maybesysstr(v): |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
25 if isinstance(v, bytes): |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
26 return pycompat.sysstr(v) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
27 return pycompat.sysstr(stringutil.pprint(v)) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
28 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
29 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
30 def bprint(*args, **kwargs): |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
31 print( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
32 *[_maybesysstr(a) for a in args], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
33 **{k: _maybesysstr(v) for k, v in kwargs.items()} |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
34 ) |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
35 # avoid awkward interleaving with ui object's output |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
36 sys.stdout.flush() |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
37 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
38 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
39 def testui( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
40 user=b'foo', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
41 group=b'bar', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
42 tusers=(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
43 tgroups=(), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
44 cuser=b'foo', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
45 cgroup=b'bar', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
46 debug=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
47 silent=False, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
48 report=True, |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
49 ): |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
50 # 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
|
51 # 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
|
52 # 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
|
53 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
54 # 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
|
55 # 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
|
56 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
|
57 f.write(basehgrc) |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
58 f.write(b'\n[paths]\n') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
59 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
|
60 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
61 if tusers or tgroups: |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
62 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
|
63 if tusers: |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
64 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
|
65 if tgroups: |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
66 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
|
67 f.close() |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
68 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
69 # 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
|
70 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
|
71 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
|
72 return cuser |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
73 return user |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
74 |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
75 util.username = username |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
76 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
77 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
|
78 if gid is None: |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
79 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
|
80 return group |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
81 |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
82 util.groupname = groupname |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
83 |
8657
3fa92c618624
posix: do not use fstat in isowner
Martin Geisler <mg@lazybytes.net>
parents:
8190
diff
changeset
|
84 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
|
85 return user == cuser |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
86 |
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
|
87 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
|
88 |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
89 # try to read everything |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
90 # print '# File belongs to user %s, group %s' % (user, group) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
91 # 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
|
92 kind = (b'different', b'same') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
93 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
|
94 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
|
95 if trusted: |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
96 trusted = b', but we trust the ' + trusted |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
97 bprint( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
98 b'# %s user, %s group%s' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
99 % (kind[user == cuser], kind[group == cgroup], trusted) |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
100 ) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
101 |
30559
d83ca854fa21
ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents:
28934
diff
changeset
|
102 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
|
103 # 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
|
104 # |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
105 # 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
|
106 # 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
|
107 # config. |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
108 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
|
109 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
|
110 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
|
111 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
|
112 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
|
113 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
|
114 return u |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
115 bprint(b'trusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
116 for name, path in u.configitems(b'paths'): |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
117 bprint(b' ', name, b'=', util.pconvert(path)) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
118 bprint(b'untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
119 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
|
120 bprint(b'.', end=b' ') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
121 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
|
122 bprint(b'.', end=b' ') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
123 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
|
124 bprint(name, b'=', util.pconvert(path)) |
28934
c4040a35b5d9
tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28913
diff
changeset
|
125 print() |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
126 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
127 return u |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
128 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
129 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
130 os.mkdir(b'repo') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
131 os.chdir(b'repo') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
132 os.mkdir(b'.hg') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
133 f = open(b'.hg/hgrc', 'wb') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
134 f.write(b'[paths]\n') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
135 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
|
136 f.close() |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
137 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
138 # 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
|
139 |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
140 # 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
|
141 testui() |
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
142 # same user, different group |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
143 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
|
144 # different user, same group |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
145 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
|
146 # ... but we trust the group |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
147 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
|
148 # different user, different group |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
149 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
|
150 # ... but we trust the user |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
151 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
|
152 # ... but we trust the group |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
153 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
|
154 # ... 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
|
155 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
|
156 # ... but we trust all users |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
157 bprint(b'# we trust all users') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
158 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
|
159 # ... but we trust all groups |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
160 bprint(b'# we trust all groups') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
161 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
|
162 # ... but we trust the whole universe |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
163 bprint(b'# we trust all users and groups') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
164 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
|
165 # ... 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
|
166 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
|
167 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
|
168 # ... lists of user names work |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
169 bprint(b"# list of user names") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
170 testui( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
171 user=b'abc', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
172 group=b'def', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
173 tusers=[b'foo', b'xyz', b'abc', b'bleh'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
174 tgroups=[b'bar', b'baz', b'qux'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
175 ) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
176 # ... lists of group names work |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
177 bprint(b"# list of group names") |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
178 testui( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
179 user=b'abc', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
180 group=b'def', |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
181 tusers=[b'foo', b'xyz', b'bleh'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
182 tgroups=[b'bar', b'def', b'baz', b'qux'], |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
183 ) |
3551
3b07e223534b
Only read .hg/hgrc files from trusted users/groups
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff
changeset
|
184 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
185 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
|
186 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
|
187 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
188 bprint(b"# prints debug warnings") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
189 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
|
190 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
191 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
|
192 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
|
193 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
194 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
|
195 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
|
196 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
197 bprint(b"# ui.readconfig sections") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
198 filename = b'foobar' |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
199 f = open(filename, 'wb') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
200 f.write(b'[foobar]\n') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
201 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
|
202 f.close() |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
203 u.readconfig(filename, sections=[b'foobar']) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
204 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
|
205 |
28934
c4040a35b5d9
tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28913
diff
changeset
|
206 print() |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
207 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
|
208 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
|
209 # 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
|
210 # |
85a2db47ad50
configitems: adds a developer warning when accessing undeclared configuration
Boris Feld <boris.feld@octobus.net>
parents:
31857
diff
changeset
|
211 # 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
|
212 # 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
|
213 # config. |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
214 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
|
215 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
|
216 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
|
217 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
|
218 u2 = u.copy() |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
219 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
220 |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
221 def username(uid=None): |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
222 return b'foo' |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
223 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
224 |
3552
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
225 util.username = username |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
226 u2.readconfig(b'.hg/hgrc') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
227 bprint(b'trusted:') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
228 bprint(u2.config(b'foobar', b'baz')) |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
229 bprint(b'untrusted:') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
230 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
|
231 |
28934
c4040a35b5d9
tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28913
diff
changeset
|
232 print() |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
233 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
|
234 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
235 |
26587
56b2bcea2529
error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
25660
diff
changeset
|
236 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
|
237 try: |
9b52239dc740
save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3551
diff
changeset
|
238 f() |
25660
328739ea70c3
global: mass rewrite to use modern exception syntax
Gregory Szorc <gregory.szorc@gmail.com>
parents:
19872
diff
changeset
|
239 except exc as inst: |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
240 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
|
241 else: |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
242 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
|
243 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
244 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
245 bprint(b"# file doesn't exist") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
246 os.unlink(b'.hg/hgrc') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
247 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
|
248 testui(debug=True, silent=True) |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
249 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
|
250 |
28934
c4040a35b5d9
tests: make test-trusted use print_function
Pulkit Goyal <7895pulkit@gmail.com>
parents:
28913
diff
changeset
|
251 print() |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
252 bprint(b"# parse error") |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
253 f = open(b'.hg/hgrc', 'wb') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
254 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
|
255 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
|
256 |
8144
fca54469480e
ui: introduce new config parser
Matt Mackall <mpm@selenic.com>
parents:
8142
diff
changeset
|
257 try: |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
258 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
|
259 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
|
260 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
|
261 |
8144
fca54469480e
ui: introduce new config parser
Matt Mackall <mpm@selenic.com>
parents:
8142
diff
changeset
|
262 try: |
fca54469480e
ui: introduce new config parser
Matt Mackall <mpm@selenic.com>
parents:
8142
diff
changeset
|
263 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
|
264 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
|
265 bprint(inst.format()) |
31472
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
266 |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
267 print() |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
268 bprint(b'# access typed information') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
269 with open(b'.hg/hgrc', 'wb') as f: |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
270 f.write( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
271 b'''\ |
31472
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
272 [foo] |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
273 sub=main |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
274 sub:one=one |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
275 sub:two=two |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
276 path=monty/python |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
277 bool=true |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
278 int=42 |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
279 bytes=81mb |
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
280 list=spam,ham,eggs |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
281 ''' |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
282 ) |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
283 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
|
284 |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
285 |
31857
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31472
diff
changeset
|
286 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
|
287 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
|
288 if path is None: |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31472
diff
changeset
|
289 return None |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31472
diff
changeset
|
290 return util.pconvert(path) |
08fbc97d1364
tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents:
31472
diff
changeset
|
291 |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
292 |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
293 bprint(b'# suboptions, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
294 trusted = u.configsuboptions(b'foo', b'sub') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
295 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
|
296 bprint( |
31472
75e4bae56068
config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents:
30559
diff
changeset
|
297 (trusted[0], sorted(trusted[1].items())), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
298 (untrusted[0], sorted(untrusted[1].items())), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
299 ) |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
300 bprint(b'# path, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
301 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
|
302 bprint(b'# bool, trusted and untrusted') |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
303 bprint( |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
304 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
|
305 ) |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
306 bprint(b'# int, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
307 bprint( |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
308 u.configint(b'foo', b'int', 0), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
309 u.configint(b'foo', b'int', 0, untrusted=True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
310 ) |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
311 bprint(b'# bytes, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
312 bprint( |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
313 u.configbytes(b'foo', b'bytes', 0), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
314 u.configbytes(b'foo', b'bytes', 0, untrusted=True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
315 ) |
41352
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
316 bprint(b'# list, trusted and untrusted') |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
317 bprint( |
73ccba60aaa1
py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents:
34858
diff
changeset
|
318 u.configlist(b'foo', b'list', []), |
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
319 u.configlist(b'foo', b'list', [], untrusted=True), |
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
41497
diff
changeset
|
320 ) |