--- /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']