Mercurial > hg
changeset 12180:45e654e10e1b
tests: rename test for better grouping
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Wed, 08 Sep 2010 15:18:33 +0200 |
parents | 1447d3a9ff4a |
children | 045c9e8db0d8 |
files | tests/test-hgweb-non-interactive tests/test-hgweb-non-interactive.out tests/test-non-interactive-wsgi tests/test-non-interactive-wsgi.out |
diffstat | 4 files changed, 89 insertions(+), 89 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-hgweb-non-interactive Wed Sep 08 15:18:33 2010 +0200 @@ -0,0 +1,73 @@ +#!/bin/sh +# Tests if hgweb can run without touching sys.stdin, as is required +# by the WSGI standard and strictly implemented by mod_wsgi. + +mkdir repo +cd repo +hg init +echo foo > bar +hg add bar +hg commit -m "test" +hg tip + +cat > request.py <<EOF +from mercurial import dispatch +from mercurial.hgweb.hgweb_mod import hgweb +from mercurial.ui import ui +from mercurial import hg +from StringIO import StringIO +import os, sys + +class FileLike(object): + def __init__(self, real): + self.real = real + def fileno(self): + print >> sys.__stdout__, 'FILENO' + return self.real.fileno() + def read(self): + print >> sys.__stdout__, 'READ' + return self.real.read() + def readline(self): + print >> sys.__stdout__, 'READLINE' + return self.real.readline() + +sys.stdin = FileLike(sys.stdin) +errors = StringIO() +input = StringIO() +output = StringIO() + +def startrsp(headers, data): + print '---- HEADERS' + print headers + print '---- DATA' + 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': '', + 'PATH_INFO': '', + 'QUERY_STRING': '', + 'SERVER_NAME': '127.0.0.1', + 'SERVER_PORT': os.environ['HGPORT'], + 'SERVER_PROTOCOL': 'HTTP/1.0' +} + +i = hgweb('.') +i(env, startrsp) +print '---- ERRORS' +print errors.getvalue() +print '---- OS.ENVIRON wsgi variables' +print sorted([x for x in os.environ if x.startswith('wsgi')]) +print '---- request.ENVIRON wsgi variables' +print sorted([x for x in i.repo.ui.environ if x.startswith('wsgi')]) +EOF + +python request.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-hgweb-non-interactive.out Wed Sep 08 15:18:33 2010 +0200 @@ -0,0 +1,16 @@ +changeset: 0:61c9426e69fe +tag: tip +user: test +date: Thu Jan 01 00:00:00 1970 +0000 +summary: test + +---- HEADERS +200 Script output follows +---- DATA +[('Content-Type', 'text/html; charset=ascii')] +---- ERRORS + +---- OS.ENVIRON wsgi variables +[] +---- request.ENVIRON wsgi variables +['wsgi.errors', 'wsgi.input', 'wsgi.multiprocess', 'wsgi.multithread', 'wsgi.run_once', 'wsgi.url_scheme', 'wsgi.version']
--- a/tests/test-non-interactive-wsgi Wed Sep 08 15:16:03 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -#!/bin/sh -# Tests if hgweb can run without touching sys.stdin, as is required -# by the WSGI standard and strictly implemented by mod_wsgi. - -mkdir repo -cd repo -hg init -echo foo > bar -hg add bar -hg commit -m "test" -hg tip - -cat > request.py <<EOF -from mercurial import dispatch -from mercurial.hgweb.hgweb_mod import hgweb -from mercurial.ui import ui -from mercurial import hg -from StringIO import StringIO -import os, sys - -class FileLike(object): - def __init__(self, real): - self.real = real - def fileno(self): - print >> sys.__stdout__, 'FILENO' - return self.real.fileno() - def read(self): - print >> sys.__stdout__, 'READ' - return self.real.read() - def readline(self): - print >> sys.__stdout__, 'READLINE' - return self.real.readline() - -sys.stdin = FileLike(sys.stdin) -errors = StringIO() -input = StringIO() -output = StringIO() - -def startrsp(headers, data): - print '---- HEADERS' - print headers - print '---- DATA' - 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': '', - 'PATH_INFO': '', - 'QUERY_STRING': '', - 'SERVER_NAME': '127.0.0.1', - 'SERVER_PORT': os.environ['HGPORT'], - 'SERVER_PROTOCOL': 'HTTP/1.0' -} - -i = hgweb('.') -i(env, startrsp) -print '---- ERRORS' -print errors.getvalue() -print '---- OS.ENVIRON wsgi variables' -print sorted([x for x in os.environ if x.startswith('wsgi')]) -print '---- request.ENVIRON wsgi variables' -print sorted([x for x in i.repo.ui.environ if x.startswith('wsgi')]) -EOF - -python request.py
--- a/tests/test-non-interactive-wsgi.out Wed Sep 08 15:16:03 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ -changeset: 0:61c9426e69fe -tag: tip -user: test -date: Thu Jan 01 00:00:00 1970 +0000 -summary: test - ----- HEADERS -200 Script output follows ----- DATA -[('Content-Type', 'text/html; charset=ascii')] ----- ERRORS - ----- OS.ENVIRON wsgi variables -[] ----- request.ENVIRON wsgi variables -['wsgi.errors', 'wsgi.input', 'wsgi.multiprocess', 'wsgi.multithread', 'wsgi.run_once', 'wsgi.url_scheme', 'wsgi.version']