view tests/test-non-interactive-wsgi @ 5369:7530334bf301

revlog: generate trivial deltas against null revision To avoid extra memory usage and performance issues with large files, generate a trivial delta header for deltas against the null revision rather than calling the usual delta generator. We append the delta header to meta rather than prepending it to data to avoid a large allocate and copy.
author Matt Mackall <mpm@selenic.com>
date Wed, 03 Oct 2007 17:17:27 -0500
parents 8c5ef3b87cb1
children e3a0c092b4e2
line wrap: on
line source

#!/bin/sh

mkdir repo
cd repo
hg init
echo foo > bar
hg add bar
hg commit -m "test" -d "0 0"
hg tip

cat > request.py <<EOF
from mercurial import dispatch
from mercurial.hgweb.hgweb_mod import hgweb
from mercurial.hgweb.request import _wsgirequest
from mercurial.ui import ui
from mercurial import hg
from StringIO import StringIO
import 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()
    def isatty(self):
        print >> sys.__stdout__, 'ISATTY'
        return False

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': '20059',
	'SERVER_PROTOCOL': 'HTTP/1.0'
}

_wsgirequest(hgweb('.'), env, startrsp)
print '---- ERRORS'
print errors.getvalue()
EOF

python request.py