Mercurial > hg
view tests/test-hgweb-no-path-info.t @ 40403:bf249bb60087
shortest: never emit 0-length prefix even if unique
It turned out that the pure version of our code for finding the
shortest unique nodeid prefix would return a 0-length string if that
was unique (because there was at most one revision in the
disambiguation set). That's kind of correct, but it can't be used as
input, so we shouldn't return it. Let's just adjust the given
minlength up to at least 1. This fixes test-template-functions.t,
which was failing in pure mode.
Differential Revision: https://phab.mercurial-scm.org/D5181
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 22 Oct 2018 11:34:35 -0700 |
parents | f80f7a67e176 |
children | 42d2b31cee0b |
line wrap: on
line source
This tests if hgweb and hgwebdir still work if the REQUEST_URI variable is no longer passed with the request. Instead, SCRIPT_NAME and PATH_INFO should be used from d74fc8dec2b4 onward to route the request. $ hg init repo $ cd repo $ echo foo > bar $ hg add bar $ hg commit -m "test" $ hg tip changeset: 0:61c9426e69fe tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: test $ cat > request.py <<EOF > from __future__ import absolute_import > import os > import sys > from mercurial import ( > hgweb, > util, > ) > stringio = util.stringio > > errors = stringio() > input = stringio() > > def startrsp(status, headers): > print('---- STATUS') > print(status) > print('---- HEADERS') > print([i for i in headers if i[0] != 'ETag']) > print('---- DATA') > sys.stdout.flush() > return output.write > > env = { > 'wsgi.version': (1, 0), > 'wsgi.url_scheme': 'http', > 'wsgi.errors': errors, > 'wsgi.input': input, > 'wsgi.multithread': False, > 'wsgi.multiprocess': False, > 'wsgi.run_once': False, > 'REQUEST_METHOD': 'GET', > 'PATH_INFO': '/', > 'SCRIPT_NAME': '', > 'SERVER_NAME': '$LOCALIP', > 'SERVER_PORT': os.environ['HGPORT'], > 'SERVER_PROTOCOL': 'HTTP/1.0' > } > > def process(app): > try: > stdout = sys.stdout.buffer > except AttributeError: > stdout = sys.stdout > content = app(env, startrsp) > stdout.write(output.getvalue()) > stdout.write(b''.join(content)) > stdout.flush() > getattr(content, 'close', lambda : None)() > if errors.getvalue(): > print('---- ERRORS') > print(errors.getvalue()) > sys.stdout.flush() > > output = stringio() > env['QUERY_STRING'] = 'style=atom' > process(hgweb.hgweb(b'.', name=b'repo')) > > output = stringio() > env['QUERY_STRING'] = 'style=raw' > process(hgweb.hgwebdir({b'repo': b'.'})) > EOF $ "$PYTHON" request.py ---- STATUS 200 Script output follows ---- HEADERS [('Content-Type', 'application/atom+xml; charset=ascii')] ---- DATA <?xml version="1.0" encoding="ascii"?> <feed xmlns="http://www.w3.org/2005/Atom"> <!-- Changelog --> <id>http://$LOCALIP:$HGPORT/</id> (glob) <link rel="self" href="http://$LOCALIP:$HGPORT/atom-log"/> (glob) <link rel="alternate" href="http://$LOCALIP:$HGPORT/"/> (glob) <title>repo Changelog</title> <updated>1970-01-01T00:00:00+00:00</updated> <entry> <title>[default] test</title> <id>http://$LOCALIP:$HGPORT/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id> (glob) <link href="http://$LOCALIP:$HGPORT/rev/61c9426e69fe"/> (glob) <author> <name>test</name> <email>test</email> </author> <updated>1970-01-01T00:00:00+00:00</updated> <published>1970-01-01T00:00:00+00:00</published> <content type="xhtml"> <table xmlns="http://www.w3.org/1999/xhtml"> <tr> <th style="text-align:left;">changeset</th> <td>61c9426e69fe</td> </tr> <tr> <th style="text-align:left;">branch</th> <td>default</td> </tr> <tr> <th style="text-align:left;">bookmark</th> <td></td> </tr> <tr> <th style="text-align:left;">tag</th> <td>tip</td> </tr> <tr> <th style="text-align:left;">user</th> <td>test</td> </tr> <tr> <th style="text-align:left;vertical-align:top;">description</th> <td>test</td> </tr> <tr> <th style="text-align:left;vertical-align:top;">files</th> <td>bar<br /></td> </tr> </table> </content> </entry> </feed> ---- STATUS 200 Script output follows ---- HEADERS [('Content-Type', 'text/plain; charset=ascii')] ---- DATA /repo/ $ cd ..