Mercurial > hg
changeset 12438:922d2078017a
tests: unify test-hgweb-no-path-info
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Sep 2010 13:41:32 -0500 |
parents | b5538f89e5aa |
children | 31ea3ce83a92 |
files | tests/test-hgweb-no-path-info tests/test-hgweb-no-path-info.out tests/test-hgweb-no-path-info.t |
diffstat | 3 files changed, 108 insertions(+), 111 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-hgweb-no-path-info Sun Sep 26 13:41:32 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -#!/bin/sh -# 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. - -mkdir repo -cd repo -hg init -echo foo > bar -hg add bar -hg commit -m "test" -hg tip - -cat > request.py <<EOF -from mercurial.hgweb import hgweb, hgwebdir -from StringIO import StringIO -import os, sys - -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' - 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', - 'SCRIPT_NAME': '', - 'SERVER_NAME': '127.0.0.1', - 'SERVER_PORT': os.environ['HGPORT'], - 'SERVER_PROTOCOL': 'HTTP/1.0' -} - -def process(app): - content = app(env, startrsp) - sys.stdout.write(output.getvalue()) - sys.stdout.write(''.join(content)) - print '---- ERRORS' - print errors.getvalue() - -output = StringIO() -env['QUERY_STRING'] = 'style=atom' -process(hgweb('.', name='repo')) - -output = StringIO() -env['QUERY_STRING'] = 'style=raw' -process(hgwebdir({'repo': '.'})) -EOF - -python request.py | sed "s/http:\/\/127\.0\.0\.1:[0-9]*\//http:\/\/127.0.0.1\//"
--- a/tests/test-hgweb-no-path-info.out Sun Sep 26 13:41:32 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -changeset: 0:61c9426e69fe -tag: tip -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: test - ----- 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://127.0.0.1/</id> - <link rel="self" href="http://127.0.0.1/atom-log"/> - <link rel="alternate" href="http://127.0.0.1/"/> - <title>repo Changelog</title> - <updated>1970-01-01T00:00:00+00:00</updated> - - <entry> - <title>test</title> - <id>http://127.0.0.1/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id> - <link href="http://127.0.0.1/rev/61c9426e69fe"/> - <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"> - <div xmlns="http://www.w3.org/1999/xhtml"> - <pre xml:space="preserve">test</pre> - </div> - </content> - </entry> - -</feed> ----- ERRORS - ----- STATUS -200 Script output follows ----- HEADERS -[('Content-Type', 'text/plain; charset=ascii')] ----- DATA - -repo/ - ----- ERRORS -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-hgweb-no-path-info.t Sun Sep 26 13:41:32 2010 -0500 @@ -0,0 +1,108 @@ +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. + + $ mkdir repo + $ cd repo + $ hg init + $ 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 mercurial.hgweb import hgweb, hgwebdir + > from StringIO import StringIO + > import os, sys + > + > 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' + > 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', + > 'SCRIPT_NAME': '', + > 'SERVER_NAME': '127.0.0.1', + > 'SERVER_PORT': os.environ['HGPORT'], + > 'SERVER_PROTOCOL': 'HTTP/1.0' + > } + > + > def process(app): + > content = app(env, startrsp) + > sys.stdout.write(output.getvalue()) + > sys.stdout.write(''.join(content)) + > print '---- ERRORS' + > print errors.getvalue() + > + > output = StringIO() + > env['QUERY_STRING'] = 'style=atom' + > process(hgweb('.', name='repo')) + > + > output = StringIO() + > env['QUERY_STRING'] = 'style=raw' + > process(hgwebdir({'repo': '.'})) + > 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://127.0.0.1:*/</id> (glob) + <link rel="self" href="http://127.0.0.1:*/atom-log"/> (glob) + <link rel="alternate" href="http://127.0.0.1:*/"/> (glob) + <title>repo Changelog</title> + <updated>1970-01-01T00:00:00+00:00</updated> + + <entry> + <title>test</title> + <id>http://127.0.0.1:*/#changeset-61c9426e69fef294feed5e2bbfc97d39944a5b1c</id> (glob) + <link href="http://127.0.0.1:*/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"> + <div xmlns="http://www.w3.org/1999/xhtml"> + <pre xml:space="preserve">test</pre> + </div> + </content> + </entry> + + </feed> + ---- ERRORS + + ---- STATUS + 200 Script output follows + ---- HEADERS + [('Content-Type', 'text/plain; charset=ascii')] + ---- DATA + + repo/ + + ---- ERRORS +