Mercurial > hg
annotate tests/test-trusted.py @ 48598:a6f16ec07ed7
stream-clone: add a explicit test for format change during stream clone
They are different kind of requirements, the one which impact the data storage
and are relevant to the files being streamed and the one which does not. For
example some requirements are only relevant to the working copy, like sparse, or
dirstate-v2.
Since they are irrelevant to the content being streamed, they do not prevent the
receiving side to use streaming clone and mercurial skip adverting them over
the wire and, ideally, within the bundle.
In addition, this let the client decide to use whichever format it desire for
the part that does not affect the store itself. So the configuration related to
these format are used as normal when doing a streaming clone.
In practice, the feature was not really tested and is badly broken with bundle-2,
since the requirements are not filtered out from the stream bundle.
So we start with adding simple tests as a good base before the fix and adjust
the feature.
Differential Revision: https://phab.mercurial-scm.org/D12029
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 17 Jan 2022 18:51:47 +0100 |
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 ) |