--- a/tests/test-hgweb-auth.py Tue Jan 29 13:25:21 2019 -0500
+++ b/tests/test-hgweb-auth.py Tue Jan 29 13:26:18 2019 -0500
@@ -24,16 +24,26 @@
def writeauth(items):
ui = origui.copy()
for name, value in items.items():
- ui.setconfig('auth', name, value)
+ ui.setconfig(b'auth', name, value)
return ui
+def _stringifyauthinfo(ai):
+ if ai is None:
+ return ai
+ realm, authuris, user, passwd = ai
+ return (pycompat.strurl(realm),
+ [pycompat.strurl(u) for u in authuris],
+ pycompat.strurl(user),
+ pycompat.strurl(passwd),
+ )
+
def test(auth, urls=None):
print('CFG:', pycompat.sysstr(stringutil.pprint(auth, bprefix=True)))
prefixes = set()
for k in auth:
- prefixes.add(k.split('.', 1)[0])
+ prefixes.add(k.split(b'.', 1)[0])
for p in prefixes:
- for name in ('.username', '.password'):
+ for name in (b'.username', b'.password'):
if (p + name) not in auth:
auth[p + name] = p
auth = dict((k, v) for k, v in auth.items() if v is not None)
@@ -41,106 +51,109 @@
ui = writeauth(auth)
def _test(uri):
- print('URI:', uri)
+ print('URI:', pycompat.strurl(uri))
try:
pm = url.passwordmgr(ui, urlreq.httppasswordmgrwithdefaultrealm())
u, authinfo = util.url(uri).authinfo()
if authinfo is not None:
- pm.add_password(*authinfo)
- print(' ', pm.find_user_password('test', u))
+ pm.add_password(*_stringifyauthinfo(authinfo))
+ print(' ', tuple(pycompat.strurl(a) for a in
+ pm.find_user_password('test',
+ pycompat.strurl(u))))
except error.Abort:
print(' ','abort')
if not urls:
urls = [
- 'http://example.org/foo',
- 'http://example.org/foo/bar',
- 'http://example.org/bar',
- 'https://example.org/foo',
- 'https://example.org/foo/bar',
- 'https://example.org/bar',
- 'https://x@example.org/bar',
- 'https://y@example.org/bar',
+ b'http://example.org/foo',
+ b'http://example.org/foo/bar',
+ b'http://example.org/bar',
+ b'https://example.org/foo',
+ b'https://example.org/foo/bar',
+ b'https://example.org/bar',
+ b'https://x@example.org/bar',
+ b'https://y@example.org/bar',
]
for u in urls:
_test(u)
print('\n*** Test in-uri schemes\n')
-test({'x.prefix': 'http://example.org'})
-test({'x.prefix': 'https://example.org'})
-test({'x.prefix': 'http://example.org', 'x.schemes': 'https'})
-test({'x.prefix': 'https://example.org', 'x.schemes': 'http'})
+test({b'x.prefix': b'http://example.org'})
+test({b'x.prefix': b'https://example.org'})
+test({b'x.prefix': b'http://example.org', b'x.schemes': b'https'})
+test({b'x.prefix': b'https://example.org', b'x.schemes': b'http'})
print('\n*** Test separately configured schemes\n')
-test({'x.prefix': 'example.org', 'x.schemes': 'http'})
-test({'x.prefix': 'example.org', 'x.schemes': 'https'})
-test({'x.prefix': 'example.org', 'x.schemes': 'http https'})
+test({b'x.prefix': b'example.org', b'x.schemes': b'http'})
+test({b'x.prefix': b'example.org', b'x.schemes': b'https'})
+test({b'x.prefix': b'example.org', b'x.schemes': b'http https'})
print('\n*** Test prefix matching\n')
-test({'x.prefix': 'http://example.org/foo',
- 'y.prefix': 'http://example.org/bar'})
-test({'x.prefix': 'http://example.org/foo',
- 'y.prefix': 'http://example.org/foo/bar'})
-test({'x.prefix': '*', 'y.prefix': 'https://example.org/bar'})
+test({b'x.prefix': b'http://example.org/foo',
+ b'y.prefix': b'http://example.org/bar'})
+test({b'x.prefix': b'http://example.org/foo',
+ b'y.prefix': b'http://example.org/foo/bar'})
+test({b'x.prefix': b'*', b'y.prefix': b'https://example.org/bar'})
print('\n*** Test user matching\n')
-test({'x.prefix': 'http://example.org/foo',
- 'x.username': None,
- 'x.password': 'xpassword'},
- urls=['http://y@example.org/foo'])
-test({'x.prefix': 'http://example.org/foo',
- 'x.username': None,
- 'x.password': 'xpassword',
- 'y.prefix': 'http://example.org/foo',
- 'y.username': 'y',
- 'y.password': 'ypassword'},
- urls=['http://y@example.org/foo'])
-test({'x.prefix': 'http://example.org/foo/bar',
- 'x.username': None,
- 'x.password': 'xpassword',
- 'y.prefix': 'http://example.org/foo',
- 'y.username': 'y',
- 'y.password': 'ypassword'},
- urls=['http://y@example.org/foo/bar'])
+test({b'x.prefix': b'http://example.org/foo',
+ b'x.username': None,
+ b'x.password': b'xpassword'},
+ urls=[b'http://y@example.org/foo'])
+test({b'x.prefix': b'http://example.org/foo',
+ b'x.username': None,
+ b'x.password': b'xpassword',
+ b'y.prefix': b'http://example.org/foo',
+ b'y.username': b'y',
+ b'y.password': b'ypassword'},
+ urls=[b'http://y@example.org/foo'])
+test({b'x.prefix': b'http://example.org/foo/bar',
+ b'x.username': None,
+ b'x.password': b'xpassword',
+ b'y.prefix': b'http://example.org/foo',
+ b'y.username': b'y',
+ b'y.password': b'ypassword'},
+ urls=[b'http://y@example.org/foo/bar'])
print('\n*** Test user matching with name in prefix\n')
# prefix, username and URL have the same user
-test({'x.prefix': 'https://example.org/foo',
- 'x.username': None,
- 'x.password': 'xpassword',
- 'y.prefix': 'http://y@example.org/foo',
- 'y.username': 'y',
- 'y.password': 'ypassword'},
- urls=['http://y@example.org/foo'])
+test({b'x.prefix': b'https://example.org/foo',
+ b'x.username': None,
+ b'x.password': b'xpassword',
+ b'y.prefix': b'http://y@example.org/foo',
+ b'y.username': b'y',
+ b'y.password': b'ypassword'},
+ urls=[b'http://y@example.org/foo'])
# Prefix has a different user from username and URL
-test({'y.prefix': 'http://z@example.org/foo',
- 'y.username': 'y',
- 'y.password': 'ypassword'},
- urls=['http://y@example.org/foo'])
+test({b'y.prefix': b'http://z@example.org/foo',
+ b'y.username': b'y',
+ b'y.password': b'ypassword'},
+ urls=[b'http://y@example.org/foo'])
# Prefix has a different user from URL; no username
-test({'y.prefix': 'http://z@example.org/foo',
- 'y.password': 'ypassword'},
- urls=['http://y@example.org/foo'])
+test({b'y.prefix': b'http://z@example.org/foo',
+ b'y.password': b'ypassword'},
+ urls=[b'http://y@example.org/foo'])
# Prefix and URL have same user, but doesn't match username
-test({'y.prefix': 'http://y@example.org/foo',
- 'y.username': 'z',
- 'y.password': 'ypassword'},
- urls=['http://y@example.org/foo'])
+test({b'y.prefix': b'http://y@example.org/foo',
+ b'y.username': b'z',
+ b'y.password': b'ypassword'},
+ urls=[b'http://y@example.org/foo'])
# Prefix and URL have the same user; no username
-test({'y.prefix': 'http://y@example.org/foo',
- 'y.password': 'ypassword'},
- urls=['http://y@example.org/foo'])
+test({b'y.prefix': b'http://y@example.org/foo',
+ b'y.password': b'ypassword'},
+ urls=[b'http://y@example.org/foo'])
# Prefix user, but no URL user or username
-test({'y.prefix': 'http://y@example.org/foo',
- 'y.password': 'ypassword'},
- urls=['http://example.org/foo'])
+test({b'y.prefix': b'http://y@example.org/foo',
+ b'y.password': b'ypassword'},
+ urls=[b'http://example.org/foo'])
def testauthinfo(fullurl, authurl):
print('URIs:', fullurl, authurl)
pm = urlreq.httppasswordmgrwithdefaultrealm()
- pm.add_password(*util.url(fullurl).authinfo()[1])
+ ai = _stringifyauthinfo(util.url(pycompat.bytesurl(fullurl)).authinfo()[1])
+ pm.add_password(*ai)
print(pm.find_user_password('test', authurl))
print('\n*** Test urllib2 and util.url\n')