D5736: tests: port test-hgweb-auth.py to Python 3
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Tue Jan 29 16:48:18 EST 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG30dd20a56f3e: tests: port test-hgweb-auth.py to Python 3 (authored by durin42, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D5736?vs=13551&id=13558
REVISION DETAIL
https://phab.mercurial-scm.org/D5736
AFFECTED FILES
contrib/python3-whitelist
tests/test-hgweb-auth.py
CHANGE DETAILS
diff --git a/tests/test-hgweb-auth.py b/tests/test-hgweb-auth.py
--- a/tests/test-hgweb-auth.py
+++ b/tests/test-hgweb-auth.py
@@ -24,123 +24,136 @@
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)
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')
diff --git a/contrib/python3-whitelist b/contrib/python3-whitelist
--- a/contrib/python3-whitelist
+++ b/contrib/python3-whitelist
@@ -261,6 +261,7 @@
test-hgk.t
test-hgrc.t
test-hgweb-annotate-whitespace.t
+test-hgweb-auth.py
test-hgweb-bundle.t
test-hgweb-commands.t
test-hgweb-csp.t
To: durin42, pulkit, #hg-reviewers, indygreg
Cc: indygreg, mercurial-devel
More information about the Mercurial-devel
mailing list