I've been working with AkaDAV, a Twisted based WebDAV server, and I'm trying to support the full litmus test suite. I'm currently stuck on the http sub-suite.
Specifically, I can run:
$ TESTS=http litmus http://localhost:8080/steder/
-> running `http':
0. init.................. pass
1. begin................. pass
2. expect100............. FAIL (timeout waiting for interim response)
3. finish................ pass
This test basically does the following:
- Open a socket to the WebDAV server
Issue the following PUT:
PUT /steder/litmus/expect100 HTTP/1.1 Host: localhost:8080 Content-Length: 100 Expect: 100-continue
waits for a response
HTTP/1.1 100 Continue
response.- uploads 100 byte content payload
The confusing thing here is that it looks like this PUT request never makes it to Twisted. As a sanity check I've confirmed that PUT requests issued through curl -X PUT ...
work so it seems like there's something special about this testcase.
Any ideas what I may be doing wrong? I'm happy to share sourcecode if that helps.
EDIT:
After a little more looking around it appears that this is a known twisted.web
issue: http://twistedmatrix.com/trac/ticket/4673
Does anyone know of a workaround?