tests/test-trusted.py.out
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
Thu, 04 Oct 2007 23:21:37 -0300
changeset 5378 8a2915f57dfc
parent 3538 9b52239dc740
permissions -rw-r--r--
convert: add a mode where mercurial_sink skips empty revisions. The getchanges function of some converter_source classes can return some false positives. I.e. they sometimes claim that a file "foo" was changed in some revision, even though its contents are still the same. convert_svn is particularly bad, but I think this can also happen with convert_cvs and, at least in theory, with mercurial_source. For regular conversions this is not really a problem - as long as getfile returns the right contents, we'll get a converted revision with the right contents. But when we use --filemap, this could lead to superfluous revisions being converted. Instead of fixing every converter_source, I decided to change mercurial_sink to work around this problem. When --filemap is used, we're interested only in revisions that touch some specific files. If a revision doesn't change any of these files, then we're not interested in it (at least for revisions with a single parent; merges are special). For mercurial_sink, we abuse this property and rollback a commit if the manifest text hasn't changed. This avoids duplicating the logic from localrepo.filecommit to detect unchanged files.

# same user, same group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# same user, different group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# different user, same group
Not trusting file .hg/hgrc from untrusted user abc, group bar
trusted
    global = /some/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# different user, same group, but we trust the group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# different user, different group
Not trusting file .hg/hgrc from untrusted user abc, group def
trusted
    global = /some/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# different user, different group, but we trust the user
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# different user, different group, but we trust the group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# different user, different group, but we trust the user and the group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# we trust all users
# different user, different group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# we trust all groups
# different user, different group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# we trust all users and groups
# different user, different group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# we don't get confused by users and groups with the same name
# different user, different group
Not trusting file .hg/hgrc from untrusted user abc, group def
trusted
    global = /some/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# list of user names
# different user, different group, but we trust the user
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# list of group names
# different user, different group, but we trust the group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# Can't figure out the name of the user running this process
# different user, different group
trusted
    global = /some/path
    interpolated = /some/path/another/path
    local = /another/path
untrusted
. . global = /some/path
. . interpolated = /some/path/another/path
. . local = /another/path

# prints debug warnings
# different user, different group
Not trusting file .hg/hgrc from untrusted user abc, group def
trusted
Ignoring untrusted configuration option paths.interpolated = /some/path/another/path
Ignoring untrusted configuration option paths.local = /another/path
    global = /some/path
untrusted
. . global = /some/path
.Ignoring untrusted configuration option paths.interpolated = /some/path/another/path
 . interpolated = /some/path/another/path
.Ignoring untrusted configuration option paths.local = /another/path
 . local = /another/path

# ui.readsections
quux

# read trusted, untrusted, new ui, trusted
Not trusting file foobar from untrusted user abc, group def
trusted:
Ignoring untrusted configuration option foobar.baz = quux
None
/some/path/another/path
untrusted:
quux
/some/path/another/path

# error handling
# file doesn't exist
# same user, same group
# different user, different group

# parse error
# different user, different group
Not trusting file .hg/hgrc from untrusted user abc, group def
Ignored: Failed to parse .hg/hgrc
File contains no section headers.
file: .hg/hgrc, line: 1
'foo = bar'
# same user, same group
raised Abort

# interpolation error
# same user, same group
# regular config:
  trusted raised Abort
untrusted raised Abort
# different user, different group
Not trusting file .hg/hgrc from untrusted user abc, group def
  trusted Ignored: Error in configuration section [foo] parameter 'bar':
bad interpolation variable reference '%('
 None
untrusted raised Abort
# configitems:
  trusted Ignored: Error in configuration section [foo]:
bad interpolation variable reference '%('
 []
untrusted raised Abort