annotate tests/test-trusted.py @ 45613:ddcee0b0fd67

changing-files: add a utility to compute the merged files post-commit We will need it in `_getsidedata` as soon as we start persisting that set. Differential Revision: https://phab.mercurial-scm.org/D9089
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 25 Sep 2020 11:29:19 +0200
parents 2372284d9457
children c9b14c56fc2b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
41497
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
257 # This is a hack to remove b'' prefixes from ParseError.__bytes__ on
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
258 # Python 3.
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
259 def normalizeparseerror(e):
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
260 if pycompat.ispy3:
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
261 args = [a.decode('utf-8') for a in e.args]
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
262 else:
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
263 args = e.args
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
264
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
265 return error.ParseError(*args)
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
266
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
267
8144
fca54469480e ui: introduce new config parser
Matt Mackall <mpm@selenic.com>
parents: 8142
diff changeset
268 try:
41352
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
269 testui(user=b'abc', group=b'def', silent=True)
25660
328739ea70c3 global: mass rewrite to use modern exception syntax
Gregory Szorc <gregory.szorc@gmail.com>
parents: 19872
diff changeset
270 except error.ParseError as inst:
41497
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
271 bprint(normalizeparseerror(inst))
3552
9b52239dc740 save settings from untrusted config files in a separate configparser
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3551
diff changeset
272
8144
fca54469480e ui: introduce new config parser
Matt Mackall <mpm@selenic.com>
parents: 8142
diff changeset
273 try:
fca54469480e ui: introduce new config parser
Matt Mackall <mpm@selenic.com>
parents: 8142
diff changeset
274 testui(debug=True, silent=True)
25660
328739ea70c3 global: mass rewrite to use modern exception syntax
Gregory Szorc <gregory.szorc@gmail.com>
parents: 19872
diff changeset
275 except error.ParseError as inst:
41497
3028b4073be1 tests: convert ParseError arguments to str on Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 41352
diff changeset
276 bprint(normalizeparseerror(inst))
31472
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
277
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
278 print()
41352
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
279 bprint(b'# access typed information')
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
280 with open(b'.hg/hgrc', 'wb') as f:
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
281 f.write(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
282 b'''\
31472
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
283 [foo]
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
284 sub=main
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
285 sub:one=one
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
286 sub:two=two
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
287 path=monty/python
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
288 bool=true
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
289 int=42
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
290 bytes=81mb
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
291 list=spam,ham,eggs
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
292 '''
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
293 )
41352
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
294 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
295
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
296
31857
08fbc97d1364 tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 31472
diff changeset
297 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
298 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
299 if path is None:
08fbc97d1364 tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 31472
diff changeset
300 return None
08fbc97d1364 tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 31472
diff changeset
301 return util.pconvert(path)
08fbc97d1364 tests: print Unix style paths in *.py tests
Matt Harbison <matt_harbison@yahoo.com>
parents: 31472
diff changeset
302
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
303
41352
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
304 bprint(b'# suboptions, trusted and untrusted')
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
305 trusted = u.configsuboptions(b'foo', b'sub')
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
306 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
307 bprint(
31472
75e4bae56068 config: honour the trusted flag in ui.configbytes
Martijn Pieters <mjpieters@fb.com>
parents: 30559
diff changeset
308 (trusted[0], sorted(trusted[1].items())),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
309 (untrusted[0], sorted(untrusted[1].items())),
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'# path, trusted and untrusted')
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
312 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
313 bprint(b'# bool, trusted and untrusted')
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
314 bprint(
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
315 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
316 )
41352
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
317 bprint(b'# int, trusted and untrusted')
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
318 bprint(
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
319 u.configint(b'foo', b'int', 0),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
320 u.configint(b'foo', b'int', 0, untrusted=True),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
321 )
41352
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
322 bprint(b'# bytes, trusted and untrusted')
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
323 bprint(
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
324 u.configbytes(b'foo', b'bytes', 0),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
325 u.configbytes(b'foo', b'bytes', 0, untrusted=True),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
326 )
41352
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
327 bprint(b'# list, trusted and untrusted')
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
328 bprint(
73ccba60aaa1 py3: almost fix test-trusted.py
Augie Fackler <augie@google.com>
parents: 34858
diff changeset
329 u.configlist(b'foo', b'list', []),
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
330 u.configlist(b'foo', b'list', [], untrusted=True),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 41497
diff changeset
331 )