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