view tests/test-non-interactive-wsgi @ 5483:0c43f87baba3 default tip

Fix file-changed-to-dir and dir-to-file commits (issue660). Allow adding to dirstate files that clash with previously existing but marked for removal. Protect from reintroducing clashes by revert. This change doesn't address related issues with update. Current workaround is to do "clean" update by manually removing conflicting files/dirs from working directory.
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 27 Oct 2007 16:27:55 +0400
parents e3a0c092b4e2
children
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 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()
    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': os.environ['HGPORT'],
	'SERVER_PROTOCOL': 'HTTP/1.0'
}

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

python request.py