A large amount of parsing code that the two classes had in common (duplicated, generally in constructors) has been refactored into utility functions so that only minimal logic is implemented. Also, some attributes that were previously set based on multiple conditions in constructors have become properties.
What's the status of this pull request? Does it need to be updated to merge cleanly?
@bdarnell Tagging to notify you via email :)
Yeah, it looks like it may need a bit of an update to merge. Overall it looks reasonable, but there's one issue that will have to be cleared up before a change like this can go in. The ioloop.py module is not importable on App Engine, and by extension neither is httpserver.py. We'll need to either move HTTPRequest somewhere neutral (httputil.py) or do some conditional imports in httpserver to make it work when the IOLoop is not available (at least enough for HTTPRequest - note that the SSLIOStream type check will probably need to move).
Why did you move some stuff from the constructor to properties?
Use real httpserver.HTTPRequest in WSGI apps instead of mock
I just tried merging this and the tests failed on python 3 - looks like the path is getting utf8 encoded an extra time.
I've just merged changes into the master branch that include replacing the WSGI HTTPRequest with a shared version.