Mercurial > hg
view tests/test-hgweb-auth.py @ 14562:fccd3b966da7
web: provide the file number to the diffstat templates
This allows the diffstat templates to link into the diff output. For example,
the URLs of the first three files within the diff are #l1.1, #l2.1, #l3.1.
author | Steven Brown <StevenGBrown@gmail.com> |
---|---|
date | Thu, 09 Jun 2011 01:15:49 +0800 |
parents | 08a0f04b56bd |
children | 4a43e23b8c55 |
line wrap: on
line source
from mercurial import demandimport; demandimport.enable() from mercurial import ui from mercurial import url from mercurial.error import Abort class myui(ui.ui): def interactive(self): return False origui = myui() def writeauth(items): ui = origui.copy() for name, value in items.iteritems(): ui.setconfig('auth', name, value) return ui def dumpdict(dict): return '{' + ', '.join(['%s: %s' % (k, dict[k]) for k in sorted(dict.iterkeys())]) + '}' def test(auth): print 'CFG:', dumpdict(auth) prefixes = set() for k in auth: prefixes.add(k.split('.', 1)[0]) for p in prefixes: auth.update({p + '.username': p, p + '.password': p}) ui = writeauth(auth) def _test(uri): print 'URI:', uri try: pm = url.passwordmgr(ui) print ' ', pm.find_user_password('test', uri) except Abort, e: print 'abort' _test('http://example.org/foo') _test('http://example.org/foo/bar') _test('http://example.org/bar') _test('https://example.org/foo') _test('https://example.org/foo/bar') _test('https://example.org/bar') 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'}) 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'}) 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'})