##// END OF EJS Templates
pycompat: custom implementation of urllib.parse.quote()...
pycompat: custom implementation of urllib.parse.quote() urllib.parse.quote() accepts either str or bytes and returns str. There exists a urllib.parse.quote_from_bytes() which only accepts bytes. We should probably use that to retain strong typing and avoid surprises. In addition, since nearly all strings in Mercurial are bytes, we probably don't want quote() returning unicode. So, this patch implements a custom quote() that only accepts bytes and returns bytes. The quoted URL should only contain URL safe characters which is a strict subset of ASCII. So `.encode('ascii', 'strict')` should be safe.

File last commit:

r15024:0f1311e8 stable
r31400:fb1f7033 default
Show More
test-hgweb-auth.py.out
196 lines | 4.7 KiB | text/plain | TextLexer
/ tests / test-hgweb-auth.py.out
Sune Foldager
allow http authentication information to be specified in the configuration
r8333
*** 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
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 URI: https://x@example.org/bar
abort
URI: https://y@example.org/bar
abort
Sune Foldager
allow http authentication information to be specified in the configuration
r8333 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')
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 URI: https://x@example.org/bar
('x', 'x')
URI: https://y@example.org/bar
abort
Sune Foldager
allow http authentication information to be specified in the configuration
r8333 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
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 URI: https://x@example.org/bar
abort
URI: https://y@example.org/bar
abort
Sune Foldager
allow http authentication information to be specified in the configuration
r8333 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')
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 URI: https://x@example.org/bar
('x', 'x')
URI: https://y@example.org/bar
abort
Sune Foldager
allow http authentication information to be specified in the configuration
r8333
*** 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
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 URI: https://x@example.org/bar
abort
URI: https://y@example.org/bar
abort
Sune Foldager
allow http authentication information to be specified in the configuration
r8333 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')
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 URI: https://x@example.org/bar
('x', 'x')
URI: https://y@example.org/bar
abort
Sune Foldager
allow http authentication information to be specified in the configuration
r8333 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')
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 URI: https://x@example.org/bar
('x', 'x')
URI: https://y@example.org/bar
abort
Sune Foldager
allow http authentication information to be specified in the configuration
r8333
*** 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
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 URI: https://x@example.org/bar
abort
URI: https://y@example.org/bar
abort
Sune Foldager
allow http authentication information to be specified in the configuration
r8333 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
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 URI: https://x@example.org/bar
abort
URI: https://y@example.org/bar
abort
Sune Foldager
allow http authentication information to be specified in the configuration
r8333 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')
Patrick Mezard
hgweb: do not ignore [auth] if url has a username (issue2822)...
r15005 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')
Patrick Mezard
http: strip credentials from urllib2 manager URIs (issue2885)...
r15024
*** Test urllib2 and util.url
URIs: http://user@example.com:8080/foo http://example.com:8080/foo
('user', '')