comparison tests/test-hgweb-auth.py @ 28748:c2ba5a810fa1

py3: use print_function in test-hgweb-auth.py
author Robert Stanca <robert.stanca7@gmail.com>
date Mon, 04 Apr 2016 01:31:21 +0300
parents 779addce6910
children 736f64b23a24
comparison
equal deleted inserted replaced
28747:779addce6910 28748:c2ba5a810fa1
1 from __future__ import absolute_import 1 from __future__ import absolute_import, print_function
2 2
3 from mercurial import demandimport; demandimport.enable() 3 from mercurial import demandimport; demandimport.enable()
4 import urllib2 4 import urllib2
5 from mercurial import ( 5 from mercurial import (
6 ui, 6 ui,
26 def dumpdict(dict): 26 def dumpdict(dict):
27 return '{' + ', '.join(['%s: %s' % (k, dict[k]) 27 return '{' + ', '.join(['%s: %s' % (k, dict[k])
28 for k in sorted(dict.iterkeys())]) + '}' 28 for k in sorted(dict.iterkeys())]) + '}'
29 29
30 def test(auth, urls=None): 30 def test(auth, urls=None):
31 print 'CFG:', dumpdict(auth) 31 print('CFG:', dumpdict(auth))
32 prefixes = set() 32 prefixes = set()
33 for k in auth: 33 for k in auth:
34 prefixes.add(k.split('.', 1)[0]) 34 prefixes.add(k.split('.', 1)[0])
35 for p in prefixes: 35 for p in prefixes:
36 for name in ('.username', '.password'): 36 for name in ('.username', '.password'):
39 auth = dict((k, v) for k, v in auth.iteritems() if v is not None) 39 auth = dict((k, v) for k, v in auth.iteritems() if v is not None)
40 40
41 ui = writeauth(auth) 41 ui = writeauth(auth)
42 42
43 def _test(uri): 43 def _test(uri):
44 print 'URI:', uri 44 print('URI:', uri)
45 try: 45 try:
46 pm = url.passwordmgr(ui) 46 pm = url.passwordmgr(ui)
47 u, authinfo = util.url(uri).authinfo() 47 u, authinfo = util.url(uri).authinfo()
48 if authinfo is not None: 48 if authinfo is not None:
49 pm.add_password(*authinfo) 49 pm.add_password(*authinfo)
50 print ' ', pm.find_user_password('test', u) 50 print(' ', pm.find_user_password('test', u))
51 except Abort: 51 except Abort:
52 print 'abort' 52 print(' ','abort')
53 53
54 if not urls: 54 if not urls:
55 urls = [ 55 urls = [
56 'http://example.org/foo', 56 'http://example.org/foo',
57 'http://example.org/foo/bar', 57 'http://example.org/foo/bar',
64 ] 64 ]
65 for u in urls: 65 for u in urls:
66 _test(u) 66 _test(u)
67 67
68 68
69 print '\n*** Test in-uri schemes\n' 69 print('\n*** Test in-uri schemes\n')
70 test({'x.prefix': 'http://example.org'}) 70 test({'x.prefix': 'http://example.org'})
71 test({'x.prefix': 'https://example.org'}) 71 test({'x.prefix': 'https://example.org'})
72 test({'x.prefix': 'http://example.org', 'x.schemes': 'https'}) 72 test({'x.prefix': 'http://example.org', 'x.schemes': 'https'})
73 test({'x.prefix': 'https://example.org', 'x.schemes': 'http'}) 73 test({'x.prefix': 'https://example.org', 'x.schemes': 'http'})
74 74
75 print '\n*** Test separately configured schemes\n' 75 print('\n*** Test separately configured schemes\n')
76 test({'x.prefix': 'example.org', 'x.schemes': 'http'}) 76 test({'x.prefix': 'example.org', 'x.schemes': 'http'})
77 test({'x.prefix': 'example.org', 'x.schemes': 'https'}) 77 test({'x.prefix': 'example.org', 'x.schemes': 'https'})
78 test({'x.prefix': 'example.org', 'x.schemes': 'http https'}) 78 test({'x.prefix': 'example.org', 'x.schemes': 'http https'})
79 79
80 print '\n*** Test prefix matching\n' 80 print('\n*** Test prefix matching\n')
81 test({'x.prefix': 'http://example.org/foo', 81 test({'x.prefix': 'http://example.org/foo',
82 'y.prefix': 'http://example.org/bar'}) 82 'y.prefix': 'http://example.org/bar'})
83 test({'x.prefix': 'http://example.org/foo', 83 test({'x.prefix': 'http://example.org/foo',
84 'y.prefix': 'http://example.org/foo/bar'}) 84 'y.prefix': 'http://example.org/foo/bar'})
85 test({'x.prefix': '*', 'y.prefix': 'https://example.org/bar'}) 85 test({'x.prefix': '*', 'y.prefix': 'https://example.org/bar'})
86 86
87 print '\n*** Test user matching\n' 87 print('\n*** Test user matching\n')
88 test({'x.prefix': 'http://example.org/foo', 88 test({'x.prefix': 'http://example.org/foo',
89 'x.username': None, 89 'x.username': None,
90 'x.password': 'xpassword'}, 90 'x.password': 'xpassword'},
91 urls=['http://y@example.org/foo']) 91 urls=['http://y@example.org/foo'])
92 test({'x.prefix': 'http://example.org/foo', 92 test({'x.prefix': 'http://example.org/foo',
103 'y.username': 'y', 103 'y.username': 'y',
104 'y.password': 'ypassword'}, 104 'y.password': 'ypassword'},
105 urls=['http://y@example.org/foo/bar']) 105 urls=['http://y@example.org/foo/bar'])
106 106
107 def testauthinfo(fullurl, authurl): 107 def testauthinfo(fullurl, authurl):
108 print 'URIs:', fullurl, authurl 108 print('URIs:', fullurl, authurl)
109 pm = urllib2.HTTPPasswordMgrWithDefaultRealm() 109 pm = urllib2.HTTPPasswordMgrWithDefaultRealm()
110 pm.add_password(*util.url(fullurl).authinfo()[1]) 110 pm.add_password(*util.url(fullurl).authinfo()[1])
111 print pm.find_user_password('test', authurl) 111 print(pm.find_user_password('test', authurl))
112 112
113 print '\n*** Test urllib2 and util.url\n' 113 print('\n*** Test urllib2 and util.url\n')
114 testauthinfo('http://user@example.com:8080/foo', 'http://example.com:8080/foo') 114 testauthinfo('http://user@example.com:8080/foo', 'http://example.com:8080/foo')