tests/test-hgweb-auth.py.out
author Durham Goode <durham@fb.com>
Tue, 11 Feb 2014 21:04:12 -0800
changeset 20519 cda9d2b6beab
parent 15024 0f1311e829c9
child 37940 31c37e703cee
permissions -rw-r--r--
template: add revset() template function Adds a template function that executes a revset and returns the list of revisions as the result. It has the signature 'revset(query [, args...])'. The args are optional and are applied to the query string using the standard python string.format(args) pattern. This allows things like: '{revset("parents({0})", rev)}' to produce the parents of each individual commit in the log output. If no args are specified, the revset result is cached for the duration of the templater; so it's better to not use args if performance is a concern. By itself, revset() can be used to print commit parents, print the common ancestor of a commit with the main branch, etc. It can be used with the ifcontains() function to do things like '{ifcontains(rev, revset('.'), label(...), ...)}' to color the working copy parent, to color certain branches, to color draft commits, etc.


*** Test in-uri schemes

CFG: {x.prefix: http://example.org}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('x', 'x')
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: https://example.org}
URI: http://example.org/foo
     abort
URI: http://example.org/foo/bar
     abort
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('x', 'x')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: http://example.org, x.schemes: https}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('x', 'x')
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: https://example.org, x.schemes: http}
URI: http://example.org/foo
     abort
URI: http://example.org/foo/bar
     abort
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('x', 'x')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     abort

*** Test separately configured schemes

CFG: {x.prefix: example.org, x.schemes: http}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('x', 'x')
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: example.org, x.schemes: https}
URI: http://example.org/foo
     abort
URI: http://example.org/foo/bar
     abort
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('x', 'x')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: example.org, x.schemes: http https}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('x', 'x')
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('x', 'x')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     abort

*** Test prefix matching

CFG: {x.prefix: http://example.org/foo, y.prefix: http://example.org/bar}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('x', 'x')
URI: http://example.org/bar
     ('y', 'y')
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: http://example.org/foo, y.prefix: http://example.org/foo/bar}
URI: http://example.org/foo
     ('x', 'x')
URI: http://example.org/foo/bar
     ('y', 'y')
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     abort
URI: https://example.org/foo/bar
     abort
URI: https://example.org/bar
     abort
URI: https://x@example.org/bar
     abort
URI: https://y@example.org/bar
     abort
CFG: {x.prefix: *, y.prefix: https://example.org/bar}
URI: http://example.org/foo
     abort
URI: http://example.org/foo/bar
     abort
URI: http://example.org/bar
     abort
URI: https://example.org/foo
     ('x', 'x')
URI: https://example.org/foo/bar
     ('x', 'x')
URI: https://example.org/bar
     ('y', 'y')
URI: https://x@example.org/bar
     ('x', 'x')
URI: https://y@example.org/bar
     ('y', 'y')

*** Test user matching

CFG: {x.password: xpassword, x.prefix: http://example.org/foo, x.username: None}
URI: http://y@example.org/foo
     ('y', 'xpassword')
CFG: {x.password: xpassword, x.prefix: http://example.org/foo, x.username: None, y.password: ypassword, y.prefix: http://example.org/foo, y.username: y}
URI: http://y@example.org/foo
     ('y', 'ypassword')
CFG: {x.password: xpassword, x.prefix: http://example.org/foo/bar, x.username: None, y.password: ypassword, y.prefix: http://example.org/foo, y.username: y}
URI: http://y@example.org/foo/bar
     ('y', 'xpassword')

*** Test urllib2 and util.url

URIs: http://user@example.com:8080/foo http://example.com:8080/foo
('user', '')