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