##// END OF EJS Templates
lfs: don't require the .hglfs file to be tracked to control the policy...
lfs: don't require the .hglfs file to be tracked to control the policy The .hgignore file doesn't need to be tracked, nor does the git equivalent of this file. I'm still a little concerned about the effects of forgetting to commit this file. But the fact that conversions maintain the hashes if only the normal vs external storage changes, should make this less risky.

File last commit:

r33686:27fb986e default
r35825:4425790f stable
Show More
test-hgweb-no-request-uri.t
179 lines | 4.4 KiB | text/troff | Tads3Lexer
/ tests / test-hgweb-no-request-uri.t
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 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.
Martin Geisler
tests: remove redundant mkdir...
r13956 $ hg init repo
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 $ 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
timeless
py3: use absolute_import in test-hgweb-no-request-uri.t
r28858 > from __future__ import absolute_import
> import os
> import sys
> from mercurial.hgweb import (
> hgweb,
> hgwebdir,
> )
timeless
pycompat: switch to util.stringio for py3 compat
r28861 > from mercurial import (
> util,
> )
> stringio = util.stringio
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 >
timeless
pycompat: switch to util.stringio for py3 compat
r28861 > errors = stringio()
> input = stringio()
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 >
> def startrsp(status, headers):
Augie Fackler
tests: fix simple heredoc print statements to work on Py3...
r33686 > print('---- STATUS')
> print(status)
> print('---- HEADERS')
> print([i for i in headers if i[0] != 'ETag'])
> print('---- DATA')
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > return output.write
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 >
> env = {
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > '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',
> 'SCRIPT_NAME': '',
Jun Wu
tests: use LOCALIP...
r31008 > 'SERVER_NAME': '$LOCALIP',
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > 'SERVER_PORT': os.environ['HGPORT'],
> 'SERVER_PROTOCOL': 'HTTP/1.0'
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 > }
>
> def process(app):
Adrian Buehlmann
check-code: add 'no tab indent' check for unified tests...
r12743 > content = app(env, startrsp)
> sys.stdout.write(output.getvalue())
> sys.stdout.write(''.join(content))
Mads Kiilerich
hgweb: make the test suite use hgweb in a more WSGI compliant way...
r18646 > getattr(content, 'close', lambda : None)()
Augie Fackler
tests: fix simple heredoc print statements to work on Py3...
r33686 > print('---- ERRORS')
> print(errors.getvalue())
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 >
timeless
pycompat: switch to util.stringio for py3 compat
r28861 > output = stringio()
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 > env['PATH_INFO'] = '/'
> env['QUERY_STRING'] = 'style=atom'
> process(hgweb('.', name = 'repo'))
>
timeless
pycompat: switch to util.stringio for py3 compat
r28861 > output = stringio()
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 > env['PATH_INFO'] = '/file/tip/'
> env['QUERY_STRING'] = 'style=raw'
> process(hgweb('.', name = 'repo'))
>
timeless
pycompat: switch to util.stringio for py3 compat
r28861 > output = stringio()
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 > env['PATH_INFO'] = '/'
> env['QUERY_STRING'] = 'style=raw'
> process(hgwebdir({'repo': '.'}))
>
timeless
pycompat: switch to util.stringio for py3 compat
r28861 > output = stringio()
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 > env['PATH_INFO'] = '/repo/file/tip/'
> env['QUERY_STRING'] = 'style=raw'
> process(hgwebdir({'repo': '.'}))
> EOF
Augie Fackler
cleanup: use $PYTHON to run python in many more tests...
r32940 $ $PYTHON request.py
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 ---- 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 -->
Jun Wu
tests: use LOCALIP...
r31008 <id>http://$LOCALIP:$HGPORT/</id> (glob)
<link rel="self" href="http://$LOCALIP:$HGPORT/atom-log"/> (glob)
<link rel="alternate" href="http://$LOCALIP:$HGPORT/"/> (glob)
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 <title>repo Changelog</title>
<updated>1970-01-01T00:00:00+00:00</updated>
<entry>
Aaron Jensen
hgweb: adding branch, tags, bookmarks, user, and file list to atom feed entries
r21056 <title>[default] test</title>
Jun Wu
tests: use LOCALIP...
r31008 <id>http://$LOCALIP:$HGPORT/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id> (glob)
<link href="http://$LOCALIP:$HGPORT/rev/61c9426e69fe"/> (glob)
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 <author>
<name>test</name>
<email>&#116;&#101;&#115;&#116;</email>
</author>
<updated>1970-01-01T00:00:00+00:00</updated>
<published>1970-01-01T00:00:00+00:00</published>
<content type="xhtml">
av6
hgweb: reindent atom/changelogentry.tmpl...
r29439 <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>&#116;&#101;&#115;&#116;</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>
Matt Mackall
tests: unify test-hgweb-no-request-uri
r12439 </content>
</entry>
</feed>
---- ERRORS
---- STATUS
200 Script output follows
---- HEADERS
[('Content-Type', 'text/plain; charset=ascii')]
---- DATA
-rw-r--r-- 4 bar
---- ERRORS
---- STATUS
200 Script output follows
---- HEADERS
[('Content-Type', 'text/plain; charset=ascii')]
---- DATA
/repo/
---- ERRORS
---- STATUS
200 Script output follows
---- HEADERS
[('Content-Type', 'text/plain; charset=ascii')]
---- DATA
-rw-r--r-- 4 bar
---- ERRORS
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..